我有一个varchar
列,其中某些值为mm/dd/yyyy
格式,有些值位于yyyymmdd
。
我想将所有mm/dd/yyyy
日期转换为yyyymmdd
格式。做这个的最好方式是什么?感谢
表格为Employees
,列为DOB
答案 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中测试
答案 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