我使用以下查询来插入数据:
CASE(isdate([Date]))
WHEN 1 THEN [date]
WHEN 0 THEN cast(substring([Date],0,5) - 2 as smalldatetime)
ELSE [date] END
现在,datetime列的日期为smalldatetime格式。如何将smalldatetime格式化日期转换为datetime格式,而列类型为datetime。
示例:对于数字日期41298
,结果为1911-04-21 00:00:00
,但实际预期结果为2013-01-26 00:00:00.000
答案 0 :(得分:0)
我已尝试过您的给定值并将其转换为预期结果,请查看一下;
SELECT CAST(CAST(41298 AS smalldatetime) AS DATE) AS Date
SELECT CAST(41298 AS smalldatetime) AS Date
输出:
答案 1 :(得分:0)
我认为你正在寻找这样的东西:
(CASE WHEN ISNUMERIC([Date]) = 1
THEN DATEADD(day, CAST([Date] as int), '1899-12-31')
WHEN iSDATE([Date]) = 1
THEN CAST([date] as smalldatetime)
END)
值41298看起来像Excel格式的日期。这些从1899年的最后一天开始计算。
答案 2 :(得分:0)
另一个选项是DateAdd
widget.datasource.items.sort(
function(a, b) {
if (a.Month > b.Month) {
return 1;
} else {
return -1;
}
}
);
返回
Select DateAdd(DAY,41298,'1900-01-01')