表中有一字段AA是datatime类型,我想将这表再所有记录的AA字段的时间加上一个时间段,应该怎么写这语句?谢谢

解决方案 »

  1.   

    怎加上一个时间段什么意思?UPDATE tb SET
        AA=DATEADD(xx,N,AA)
      

  2.   

    我的意思是 如     AA
     2008-02-01 01:02:23
     2008-02-01 03:23:23
     2008-02-01 02:23:23
    .........这表中有字段AA,我想把你们所有记录的2008-02-01改为2008-03-01,时分秒不变,只改年月日。我想通过将字段AA的所有值加上一个天数,可是这样不知道怎么写?
    谢谢
      

  3.   

    UPDATE tb SET
        AA=DATEADD(mm,1,AA)
      

  4.   

    转自:lihan6415151528 Year Yy yyyy 年 1753 ~ 9999 
    Quarter Qq q   季 1 ~ 4 
    Month Mm m   月1 ~ 12 
    Day of year Dy y 一年的日数,一年中的第几日 1-366 
    Day Dd d   日,1-31 
    Weekday Dw w 一周的日数,一周中的第几日 1-7 
    Week Wk ww 周,一年中的第几周 0 ~ 51 
    Hour Hh h   时0 ~ 23 
    Minute Mi n 分钟0 ~ 59 
    Second Ss s 秒 0 ~ 59 
    Millisecond Ms - 毫秒 0 ~ 999 
    ========================================================
    1: getdate()函数
    返回当前时间
    select getdate()
                                                           
    ------------------------------------------------------ 
    2009-02-05 11:18:39.770(所影响的行数为 1 行)==========================================================
    2:dateadd函数
    第一个参数是要添加的类型,比如MM,第二个参数你要添加多少,第三个是你要往哪里添加
    SELECT DATEADD(m,2,'2004-1-1')[DATELIHAN]
    DATELIHAN                                              
    ------------------------------------------------------ 
    2004-03-01 00:00:00.000(所影响的行数为 1 行)SELECT DATEADD(YY,1,'2004-1-1')[DATELIHAN]
    DATELIHAN                                              
    ------------------------------------------------------ 
    2005-01-01 00:00:00.000(所影响的行数为 1 行)
    ===================================================================================
    3:datediff函数
    返回参数二与参数三两个日期之间的差值 参数三-参数二 返回类型为参数一
    select datediff(dd,'2009-12-27','2009-12-25')[DATELIHAN]
    DATELIHAN   
    ----------- 
    -2(所影响的行数为 1 行)
    select datediff(yy,'2007-12-27','2009-12-25')[DATELIHAN]
    DATELIHAN   
    ----------- 
    2(所影响的行数为 1 行)
    =================================================================================
    4:datepart函数
    返回参数二中对应的参数一的值
    select datepart(mm,'2008-08-07')[月份]
    select datepart(yy,'2008-08-07')[年份]
    月份          
    ----------- 
    8(所影响的行数为 1 行)年份          
    ----------- 
    2008(所影响的行数为 1 行)========================================================================================
    5:datename函数
    返回代表指定日期的指定日期部分的字符串
    SELECT datename(weekday, '2009-10-15') [星期]
    星期                             
    ------------------------------ 
    星期四(所影响的行数为 1 行)=======================================================================================6:day函数
    返回一个整数,表示参数指定的 date 是该月份的哪一天
    select day('2009-2-5')[第几天]
    第几天         
    ----------- 
    5(所影响的行数为 1 行)
    =========================================================================================7:month函数
    返回一个整数,表示指定参数的 date 是该年的哪一月
    SELECT month('2007-04-30');
                
    ----------- 
    4(所影响的行数为 1 行)
    =================================================================================8:year函数
    返回一个整数,表示参数指定的 date 是哪一年
    SELECT year('2007-04-30');
    ----------- 
    2007(所影响的行数为 1 行)
    ============================================================================
    例如想要查询距离现在10天以内的记录
    select * from tablename where datediff(day,你的日期字段,getdate())<10
    例如想查询一段时间内的记录
    select * from talbename where 你的日期字段 between 日期一 and 日期二
      

  5.   


    提示说是: UnKown column 'mm' in 'dield list'
    ....
      

  6.   

    -->应该没错的啊,改为这样试试
    UPDATE tb SET
        AA=DATEADD(month,1,AA)
      

  7.   


    还是一样的问题
    我找了下dateadd的用法,是不是针对datetime类型有所不一样呢???DateAdd 函数
    返回已添加指定时间间隔的日期。 DateAdd(interval, number, date)参数
    interval必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。number必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。date必选项。Variant 或要添加 interval 的表示日期的文字。 设置
    interval 参数可以有以下值:设置 描述 
    yyyy 年 
    q 季度 
    m 月 
    y 一年的日数 
    d 日 
    w 一周的日数 
    ww 周 
    h 小时 
    n 分钟 
    s 秒 
      

  8.   

    我用的是mysql
    难道这不行????
      

  9.   

    UPDATE tb SET
        AA=DATEADD(mm,1,AA)
    where AA ='2008-02-01'
      

  10.   

    问sql问题注意说出数据库类型
    sql server楼上的应该可以解决了
    mysql貌似是date_add(aa,interval 1 month)
    oracle保密中,不轻传
      

  11.   

    -->Mysql
    UPDATE tb SET
        AA=ADDDATE(AA, INTERVAL 1 MONTH);
    找了好久才找到这个函数.