请问:
  假设表F01中有一列DELN,datetime字段属性。
  里面的数据是:2008-6-30
              2004-6-21
              2004-7-23
              .......
 通过公式:=100000+(YEAR(DELN)-2000)*1000+(DELN-(DATE(YEAR(DELN)-1,12,31)))  [excel表中的公式]
              将2008-6-30转化成108182跪求一段SQL 语句来转化这一列。
谢谢拉!

解决方案 »

  1.   

    date是干什么的?两个值相减是什么意思?
    DELN-(DATE(YEAR(DELN)-1,12,31))
      

  2.   


    --测试
    declare @DELN datetime
    set @DELN='2008-6-30'select 100000+(YEAR(@DELN)-2000)*1000+datediff(day,(cast(cast(YEAR(@DELN)-1 as varchar)+'-12-31' as datetime)),@DELN)--结果
                
    ----------- 
    108182(所影响的行数为 1 行)--你需要的语句
    select 100000+(YEAR(DELN)-2000)*1000+datediff(day,(cast(cast(YEAR(DELN)-1 as varchar)+'-12-31' as datetime)),DELN) as result
    from 你的表
      

  3.   

    --try
    select DELN=100000+(YEAR(DELN)-2000)*1000 + datediff(d, cast(Year(DELN)-1 as varchar)+'-12-31', DELN)
    from F01
      

  4.   

    declare @deln datetime
    set @deln='2008-6-30'
    select 100000+(year(@DELN)-2000)*1000+datediff(d,cast(cast(YEAR(@DELN)-1 as char(4))+'-12-31' as datetime),@DELN)-----------
    108182(1 行受影响)
      

  5.   

    1楼:
    date是干什么的?两个值相减是什么意思? 
    DELN-(DATE(YEAR(DELN)-1,12,31)) 在excel,
    date是把年、月、日转化成日期
    两个日期值相减是计算日期差的天数