SQL选择日期转换查询

时间:2012-11-16 01:43:17

标签: sql date data-conversion julian

一直在研究,到目前为止还没有找到可接受的答案,我的代码实验没有产生任何结果。

我有一个包含特定2列“StartDate”和“LastBackupDate”的数据库,它们似乎将日期信息存储为Julian日期(例如40953.6017873071)。我需要将其转换为标准格里高利日期(MM-DD-YYYY或DD-MM-YYYY)。

我正在从当前的“Select * FROM xxxxxx WHERE blah blah”中撤回此表中的所有结果。

如果我将数据导出到工作表,我可以立即使用Excel转换这些日期,但是当我使用Convert提取数据时,我无法获得转换日期。

这是网页的SQL查询的一部分。我无法发布网络代码,但我可以发布SQL查询:

SELECT * FROM ExpandedCustomerView WHERE regloginid = @0 AND (Status='A' OR Status='H')"

我一直在试验这个:

SELECT CONVERT(varchar(36),[STARTDATE],101)
[StartDate]
,[LastBackupDate]
FROM [CNTD_Accounts].[dbo].[ExpandedCustomerView] 

作为一种让这种方式得到适当回归的方法。我尝试过格式化101,110和其他人,看看我们是否能得到正确的结果。到目前为止,没有什么对我有用。我认为这必须相当简单。

1 个答案:

答案 0 :(得分:0)

直接从数字转换为日期时间..

select cast(40953.6017873071 as datetime)
-- 
2012-02-16 14:26:34.423

e.g。

cast([StartDate] as datetime)

如果数据是varchar字段中的数字,则将其转换两次

cast(cast([StartDate] as float) as datetime)