2

目前我有一个名为 date 作为 varchar 而不是日期时间的列。格式当前为“sep12”。我怎样才能将其转换为日期类型?我知道这是模板,但由于我当前的格式为 MMMYY,我不确定将数字更改为什么。

CAST (
    SUBSTRING(date, 3, 2) + '/' +
    SUBSTRING(date, 1, 2) + '/' +
    SUBSTRING(date, 5, 4) 
AS DATETIME) 

任何帮助将不胜感激

在按日期字段排序时,它的排序类似于 apr09、apr10。aug09, aug10 但我需要按年份顺序

4

1 回答 1

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
于 2012-09-24T10:25:13.123 回答