SQL Server:将日期转换为YYYMMDD?

时间:2016-06-20 15:08:10

标签: sql-server date

我在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,它应该能够正确转换

2 个答案:

答案 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-ddMM-dd-yyyy

如果您按照MM-dd-yyyy这种格式提出问题,如果您使用SQL Server 2012或更新版本,则可以使用此格式,您可以获得结果

DECLARE @v DATE = '11/23/2012';

SELECT FORMAT ( @v, 'yyyy/MM/dd', 'en-US' )  

参考这些链接FORMAT (Transact-SQL)SQL Server date format function