1

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

我有一个数据库,其中包含特定的 2 列“StartDate”和“LastBackupDate”,它们似乎将其日期信息存储为儒略日期(例如 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 和其他格式,看看我们是否能得到正确的结果。到目前为止,没有什么对我有用。我认为这必须相当简单。

4

1 回答 1

0

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

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

例如

cast([StartDate] as datetime)

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

cast(cast([StartDate] as float) as datetime)
于 2012-11-16T02:04:48.040 回答