目前我有一个名为 date 的列,作为 varchar 而不是日期时间。当前格式为“sep12”。我怎样才能将其转换为日期类型? 我知道这是模板,但由于我当前的格式为 MMMYY,所以我不确定将数字更改为什么。
CAST (
SUBSTRING(date, 3, 2) + '/' +
SUBSTRING(date, 1, 2) + '/' +
SUBSTRING(date, 5, 4)
AS DATETIME)
任何帮助将不胜感激
目前,按日期字段排序时,排序方式为 apr09、apr10。 aug09、aug10,但我需要按年份顺序排列
最佳答案
首先,以这种方式存储日期是一个糟糕的主意。但如果您知道年份始终以 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
关于sql-server - 迄今为止的 VARCHAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12562813/