none
求助:数据库中日期格式转换问题 RRS feed

  • 问题

  • 大家好,我要查询数据库里一个字段“LogTime”,可是这个字段是一个bigint型的,比如:129423256733557060,怎么装换为datatime型的啊?
    2011年3月18日 2:53

答案

  • 你好,

    你可以尝试使用下面的语句:

    DECLARE @Date AS BIGINT
    SET @Date =129423256733557060
    SELECT CONVERT(VARCHAR(10),DATEADD(ms, (@Date / CAST(10000 AS BIGINT)) % 86400000, 
    DATEADD(day, @Date / CAST(864000000000 AS BIGINT), 0)) - 109207, 120)+' ' +
    CONVERT(VARCHAR(10),DATEADD(ms, (@Date / CAST(10000 AS BIGINT)) % 86400000, 
    DATEADD(day, @Date / CAST(864000000000 AS BIGINT), 0)) - 109207, 108) AS [DATETIME]
    
    

    我感觉你设计的不合理~,建议你的表类型转换为DATEIMTE类型。

    谢谢,
    邱爱华

     


    Ai-hua Qiu[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 byd-admin 2011年3月18日 7:15
    2011年3月18日 5:45

全部回复

  • You have to find out what does 129423256733557060 mean, check with developer of the app.
    2011年3月18日 3:29
  • 你好,

    你可以尝试使用下面的语句:

    DECLARE @Date AS BIGINT
    SET @Date =129423256733557060
    SELECT CONVERT(VARCHAR(10),DATEADD(ms, (@Date / CAST(10000 AS BIGINT)) % 86400000, 
    DATEADD(day, @Date / CAST(864000000000 AS BIGINT), 0)) - 109207, 120)+' ' +
    CONVERT(VARCHAR(10),DATEADD(ms, (@Date / CAST(10000 AS BIGINT)) % 86400000, 
    DATEADD(day, @Date / CAST(864000000000 AS BIGINT), 0)) - 109207, 108) AS [DATETIME]
    
    

    我感觉你设计的不合理~,建议你的表类型转换为DATEIMTE类型。

    谢谢,
    邱爱华

     


    Ai-hua Qiu[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 byd-admin 2011年3月18日 7:15
    2011年3月18日 5:45