情况是这样的,现在数据库里存在两个都是日期的字段.
一个出生日期,格式是:1980-10-01
一个工作日期,格式同上,比如:2000-01-01
我的问题就是,如何将这两个字段化为数值相减,比如就取1980和2000,然后判断这个相差的年份,比如当不小于16的时候,就比较下一条记录,一直比对完数据库中所有数据,如果遇到它们的差小于16时,表明这条记录可能存在问题,然后返回这条记录内容,并把它存到一个文本文件里储存起来,方便比对完之后的修改.(比如返回这条记录的编号字段值)为方便起见,就设这个table如下内容所表示:
ID    data1        data2
1     1980-10-01   2000-01-01
2     1982-01-01   2004-01-01请高手指点了......
尤其是判断过后,如何把这个记录存到一个外部的.txt文件里,谢谢了!ps:昨天通过搜索找到的这个论坛,感觉真是好地方啊.为象我这样的菜鸟提供了咨询的地方.恩,不知道我才注册会有多少分,如果给不到那么多分,就完蛋了......

解决方案 »

  1.   

    select * from table where datediff(year, date1, date2) <=16
    查出结果后自己写程序保存到TXT或直接用SQLSERVER的查询分析器,把结果保存到TXT就行了.
      

  2.   

    declare @dt datetime
    set @dt='2007/07/06'--datepart的用法(返回值是整数)
    select datepart(day,@dt) as 日期
    select datepart(month,@dt) as 月份
    select datepart(year,@dt) as 年度
    select datepart(quarter,@dt) as 季度
    select datepart(dayofyear,@dt) as 今年的第几天
    select datepart(week,@dt) as 今年的第几个星期
    select datepart(weekday,@dt) as 本星期的第几天_周日为1--datename的用法(返回值是字符串)
    select datename(day,@dt) as 日期
    select datename(month,@dt) as 月份
    select datename(year,@dt) as 年度
    select datename(quarter,@dt) as 季度
    select datename(dayofyear,@dt) as 今年的第几天
    select datename(week,@dt) as 今年的第几个星期
    select datename(weekday,@dt) as 星期几--dateadd的用法(返回值是日期型)
    select dateadd(day,10,@dt) as 当前日期加10天
    select dateadd(month,10,@dt) as 当前日期加10个月
    select dateadd(year,10,@dt) as 当前日期加10年
    select dateadd(quarter,10,@dt) as 当前日期加10个季度
    select dateadd(week,10,@dt) as 当前日期加10周
    declare @dt1 datetime,@dt2 datetime
    set @dt1='2002/01/01'
    set @dt2='2007/02/02'
    --datediff的用法
    select datediff(year,@dt1,@dt2) as 相关年数
    select datediff(month,@dt1,@dt2) as 相差月数
    select datediff(day,@dt1,@dt2) as 相差天数以上来自咱们csdn的一个网友,他的这个帖子地址忘了,就给你copy过来吧,会有帮助的