SQL Server日期格式yyyymmdd

时间:2016-12-27 23:03:18

标签: sql-server database date datetime varchar

我有一个varchar列,其中某些值为mm/dd/yyyy格式,有些值位于yyyymmdd

我想将所有mm/dd/yyyy日期转换为yyyymmdd格式。做这个的最好方式是什么?感谢

表格为Employees,列为DOB

9 个答案:

答案 0 :(得分:19)

假设你的日期"列实际上不是日期。

Select convert(varchar(8),cast('12/24/2016' as date),112)

Select format(cast('12/24/2016' as date),'yyyyMMdd')

返回

20161224

答案 1 :(得分:5)

DECLARE @v DATE= '3/15/2013'

SELECT CONVERT(VARCHAR(10), @v, 112)

您可以将任何日期格式或日期时间格式转换为YYYYMMDD,不带分隔符

答案 2 :(得分:2)

试试这个......

SELECT FORMAT(CAST(DOB AS DATE),'yyyyMMdd') FROM Employees;

答案 3 :(得分:1)

在SQL Server中,您可以执行以下操作:

select coalesce(format(try_convert(date, col, 112), 'yyyyMMdd'), col)

这会尝试转换,保留以前的值(如果可用)。

注意:我希望您学到了将日期存储为日期而非字符串的课程。

答案 4 :(得分:0)

Select CONVERT(VARCHAR(8), GETDATE(), 112)

在SQL Server 2012中测试

https://www.w3schools.com/sql/func_sqlserver_convert.asp

答案 5 :(得分:0)

SELECT YEAR(getdate())* 10000 + MONTH(getdate())* 100 + DAY(getdate())

答案 6 :(得分:0)

您可以执行以下操作:

Select Format(test.Time, 'yyyyMMdd')
From TableTest test

答案 7 :(得分:-1)

DB2: SELECT VARCHAR_FORMAT(DOB, 'YYYYMMDD') FROM Employees;

SQL: SELECT CONVERT(VARCHAR(10), DOB, 112) FROM Employees;

MYSQL: SELECT DATE_FORMAT(DOB, "%M %d %Y") FROM Employees;

答案 8 :(得分:-3)

从表中选择TO_CHAR(created_at,'YYYY-MM-DD'); //将任何日期格式转换为YYYY-MM-DD