表:
Dates (nvarchar)
==
23/02/2009 (dd/mm/yyyy)
24/02/2009
25/08/2009
28/12/2011
....
我想更改这样的日期格式(yyyymmdd)
尝试查询
select cast(dates as datetime) from table1
显示错误
ЮArithemetic表达式溢出
select Convert(char(10), dates, 112) from table1
显示相同的值23/02/2009
以上查询无效。
预期产出
20090232
20090224
20090825
20111228
...
如何进行查询?
答案 0 :(得分:4)
select CONVERT(varchar(8),CONVERT(datetime, '23/02/2009',103),112)
答案 1 :(得分:1)
由于它们存储为字符串数据,因此您可以使用字符串函数来提供您想要的内容。
首先给你一个有效的日期
select
cast(SUBSTRING(dates,4,2) + '/' + left(dates,2) + '/' + right(dates,4) as datetime) NowItsADateTime
from DateTable
第二,你要的是什么。
select right(dates,4) + SUBSTRING(dates,4,2) + left(dates,2) as YYYYMMDD
from DateTable
答案 2 :(得分:1)
尝试这个简单的查询:
SELECT DATEPART(yyyy,dates)+DATEPART(m,dates)+DATEPART(d,dates) FROM table1
您可以在此链接上获得更多信息: sql-server-dates
答案 3 :(得分:1)
select convert(varchar, getdate(), 102)[Dates] from tablename
请看这个链接:http://www.technoreader.com/SQL-Server-Date-Time-Format.aspx