目前我有一个名为日期的列作为varchar而不是日期时间。格式目前是'sep12'。如何将其转换为日期类型? 我知道这是模板,但由于我目前的格式为MMMYY,我不确定要更改数字的内容。
CAST (
SUBSTRING(date, 3, 2) + '/' +
SUBSTRING(date, 1, 2) + '/' +
SUBSTRING(date, 5, 4)
AS DATETIME)
任何帮助将不胜感激
在按日期字段排序时,它的排序方式如apr09,apr10。 aug09,aug10但我需要它以年份顺序
答案 0 :(得分:2)
首先,以这种方式存储日期是一个糟糕的主意。但如果您知道年份将始终以20
开头,那么您可以使用类似的内容(请参阅SQL Fiddle Demo):
declare @dt varchar(10) = 'Sep12'
select convert(datetime, left(@dt, 3) + '01 20' + right(@dt, 2), 100)
如果从表中提取数据:
select convert(datetime, left(yourDateField, 3) + '01 20' + right(yourDateField, 2), 100)
from yourTable