我在SQL Server的一个列中有一个日期,示例日期是:
10/02/2012
23/11/2012
13/01/2012
10/02/2012
10/02/2012
我尝试过将日期转换为YYYYMMDD
DECLARE @v DATE= '1/11/2012'
SELECT CONVERT(VARCHAR(10), @v, 112)
我在同一个表中有另一列,我希望以YYYYMMDD
格式更新日期,这里的问题是日期不合适
并抛出错误
DECLARE @v DATE= '23/11/2012'
SELECT CONVERT(VARCHAR(10), @v, 112)
Msg 241,Level 16,State 1,Line 1
从字符串转换日期和/或时间时转换失败。
任何帮助都在此理解,日期将以任何顺序出现dd / mm / yyyy或mm / dd / yyyy,它应该能够正确转换
答案 0 :(得分:1)
您可以尝试将以下格式用于一种数据类型(dd / mm / yyyy to yyyy / mm / dd)
CONVERT(data_type(length),expression,style)
以及如下更新
UPDATE table_name SET
destination_column_name=orig_column_name
WHERE condition_if_necessary
答案 1 :(得分:0)
如果要在SQL Server中插入日期,则要遵循某些格式。您可以关注yyyy-MM-dd
或MM-dd-yyyy
如果您按照MM-dd-yyyy
这种格式提出问题,如果您使用SQL Server 2012或更新版本,则可以使用此格式,您可以获得结果
DECLARE @v DATE = '11/23/2012';
SELECT FORMAT ( @v, 'yyyy/MM/dd', 'en-US' )