none
怎么把bigint转为date类型 RRS feed

  • 问题

  • 各位大侠

    我现在想把一个bigint类型的数据(riqi)20100101转为日期型2010-01-01

    用cast(riqi as date)出错

    2010年3月29日 6:33

答案

  • 先转化成 字符类型, 然后 用 112 格式转化

     

    DECLARE @n BIGINT
    SET @n = 20100101
    SELECT CONVERT(DATETIME, CONVERT(NVARCHAR(8), @n), 112)

     

    结果

    2010-01-01 00:00:00.000

    2010年3月29日 6:53
  • 谢谢,不过这样转两次,我的数据量很大可能会对性能效率影响很大啊

    DECLARE @n BIGINT
    SET @n = 20100101
    SELECT CONVERT(datetime,RTRIM(@n))--環境不同時,需用convert+120格式再轉換

    或用stuff加上'-'符號

    要實現這樣的效果,沒有捷徑,在設計時就應考慮

     


    ROY WU(吳熹)
    2010年3月30日 4:21
    版主

全部回复

  • 先转化成 字符类型, 然后 用 112 格式转化

     

    DECLARE @n BIGINT
    SET @n = 20100101
    SELECT CONVERT(DATETIME, CONVERT(NVARCHAR(8), @n), 112)

     

    结果

    2010-01-01 00:00:00.000

    2010年3月29日 6:53
  • 谢谢,不过这样转两次,我的数据量很大可能会对性能效率影响很大啊

    2010年3月29日 9:05
  • 谢谢,不过这样转两次,我的数据量很大可能会对性能效率影响很大啊


    那就在保存的时候就保存为日期格式的。或者增加一个日期字段来专门保存。


    family as water
    2010年3月29日 9:36
  • 在应用层转啊。用多少转多少。

    2010年3月29日 12:22
  • 谢谢,不过这样转两次,我的数据量很大可能会对性能效率影响很大啊

    DECLARE @n BIGINT
    SET @n = 20100101
    SELECT CONVERT(datetime,RTRIM(@n))--環境不同時,需用convert+120格式再轉換

    或用stuff加上'-'符號

    要實現這樣的效果,沒有捷徑,在設計時就應考慮

     


    ROY WU(吳熹)
    2010年3月30日 4:21
    版主