最近在做一个数据的处理,某个时间字段的格式是 16/Mar/2008:00:03:54
希望能做只提取年:2008,月:Mar,日:16 分别放入这个表中的三个新的字段里,不知如何处理?
谢谢前辈们!

解决方案 »

  1.   

    --添加另外3个字段为计算列即可。假设日期字段为DDalter table TB add year as(year(DD))
    go
    alter table TB add month as(month(DD))
    go
    alter table TB add dayas(day(DD))
    go
      

  2.   

    alter table TB add day as(day(DD))  --手误,更正一下
    go
      

  3.   

    用SUBSTRING()这个函数
    update 表 set 年列 = SUBSTRING('16/Mar/2008:00:03:54',8,4),
                  月列=SUBSTRING('16/Mar/2008:00:03:54',4,3),
                  日列=SUBSTRING('16/Mar/2008:00:03:54',1,2),
      

  4.   


    --参考
    DECLARE @tb table(dd datetime,YEAR AS(YEAR(dd)),month AS(month(dd)),day AS(day(dd)))INSERT INTO @tb(dd)
    SELECT GETDATE()
    UNION ALL
    SELECT DATEADD(dd,1,GETDATE())
    UNION ALL
    SELECT DATEADD(mm,1,GETDATE())
    UNION ALL
    SELECT DATEADD(yy,1,GETDATE())
    SELECT * FROM @tb
    /*
    dd YEAR month day
    2012-08-31 16:11:02.947 2012 8 31
    2012-09-01 16:11:02.947 2012 9 1
    2012-09-30 16:11:02.947 2012 9 30
    2013-08-31 16:11:02.947 2013 8 31*/