【问题标题】:SQL Select Query for Date Conversion日期转换的 SQL 选择查询
【发布时间】:2012-11-16 01:43:17
【问题描述】:

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

我有一个数据库,其中包含特定的 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 和其他格式,看看我们是否能得到正确的结果。到目前为止,没有什么对我有用。我认为这必须相当简单。

【问题讨论】:

    标签: sql date data-conversion julian-date


    【解决方案1】:

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

    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)
    

    【讨论】:

    • 这非常有帮助,谢谢。演员肯定会改变显示的日期和时间。但是,我有一个新问题,我破坏了附加的网页。 Web 网格有一个问题,列名没有用 SQL 的“cast”语法定义。我猜我必须想办法以不同的方式定义 startdate 列。然而,这绝对按要求工作。非常感谢!!!!
    猜你喜欢
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 2019-04-10
    • 2011-07-04
    相关资源
    最近更新 更多