"update tb_cur_warning set isrecovered = 1,recovered_kind = "         "%d,recovered_time"
                  "= to_date('%02d%02d%02d%02d %02d:%02d:%02d','yyyymmdd hh24:mi:ss') where "   //for oracle
"ssid = %d and stationid = %d and macid = %d and slotid = %d "
"and warncode = %d and isrecovered = 0"
求救:上面这段oracle的语句改成mysql的怎么改啊,mysql的to_date用什么函数

解决方案 »

  1.   

     DATE_FORMAT(date,format)  根据format 字符串安排date 值的格式。  以下说明符可用在 format 字符串中:  说明符说明  %a工作日的缩写名称 (Sun..Sat)  %b月份的缩写名称 (Jan..Dec)  %c月份,数字形式(0..12)  %D带有英语后缀的该月日期 (0th, 1st, 2nd, 3rd, ...)  %d该月日期, 数字形式 (00..31)  %e该月日期, 数字形式(0..31)  %f微秒 (000000..999999)  %H小时(00..23)  %h小时(01..12)  %I小时 (01..12)  %i分钟,数字形式 (00..59)  %j一年中的天数 (001..366)  %k小时 (0..23)  %l小时 (1..12)  %M月份名称 (January..December)  %m月份, 数字形式 (00..12)  %p上午(AM)或下午( PM)  %r时间 , 12小时制 (小时hh:分钟mm:秒数ss 后加 AM或PM)  %S秒 (00..59)  %s秒 (00..59)  %T时间 , 24小时制 (小时hh:分钟mm:秒数ss)  %U周 (00..53), 其中周日为每周的第一天  %u周 (00..53), 其中周一为每周的第一天  %V周 (01..53), 其中周日为每周的第一天 ; 和 %X同时使用  %v周 (01..53), 其中周一为每周的第一天 ; 和 %x同时使用  %W工作日名称 (周日..周六)  %w一周中的每日 (0=周日..6=周六)  %X该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用  %x该周的年份,其中周一为每周的第一天, 数字形式,4位数;和%v同时使用  %Y年份, 数字形式,4位数  %y年份, 数字形式 (2位数)  %%‘%’文字字符  所有其它字符都被复制到结果中,无需作出解释。  注意:‘%’字符要求在格式指定符之前。  月份和日期说明符的范围从零开始,原因是 MySQL允许存储诸如 ''2004-00-00''的不完全日期.  mysql> SELECT DATE_FORMAT(''1997-10-04 22:23:00'', ''%W %M %Y'');-> ''Saturday October 1997''mysql> SELECT DATE_FORMAT(''1997-10-04 22:23:00'', ''%H:%i:%s'');-> ''22:23:00''mysql> SELECT DATE_FORMAT(''1997-10-04 22:23:00'',''%D %y %a %d %m %b %j'');-> ''4th 97 Sat 04 10 Oct 277''mysql> SELECT DATE_FORMAT(''1997-10-04 22:23:00'',''%H %k %I %r %T %S %w'');-> ''22 22 10 10:23:00 PM 22:23:00 00 6''mysql> SELECT DATE_FORMAT(''1999-01-01'', ''%X %V'');-> ''1998 52''
      

  2.   

    mysql 格式化时间(str_to_date,DATE_FORMAT)! 收藏 
    实例1: select if (str_to_date(column1, '%m/%d/%Y %r') is null,
    if (str_to_date(column1, '%Y-%m-%d') is null,
    str_to_date(column1,
    '%c/%e/%Y %T'), str_to_date(column1, '%Y-%m-%d')),
    str_to_date(column1,
    '%m/%d/%Y %r')) as a from t 实例2: select
    DATE_FORMAT(STR_TO_DATE(REPLACE (REPLACE (Date, 'AM', ''), 'PM', ''),
           '%c/%e/%Y %k:%i:%s %p'), '%Y-%m-%d') as Date as b from t本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wslyy99/archive/2008/11/09/3260117.aspx
      

  3.   


    用  DATE_FORMAT 来实现你的功能。
      

  4.   

    我把这段完整的代码贴出来,哪位大哥有没有办法帮我看看应该怎么修改啊
    updatesql.printf("update tb_cur_warning set isrecovered = 1,recovered_kind = "
    "%d,recovered_time 
            "= to_date('%02d%02d%02d%02d %02d:%02d:%02d','yyyymmdd hh24:mi:ss') where "                                                  
          "ssid = %d and stationid = %d and macid = %d and slotid = %d "
          "and warncode = %d and isrecovered = 0",
          warning->WType, warning->theTime.StrYear.hiYear,
          warning->theTime.StrYear.loYear,
          warning->theTime.ucMon, warning->theTime.ucDay,
          warning->theTime.ucHour, warning->theTime.ucMin,
          warning->theTime.ucSec, (int)
          warning->ssid,warning->stationid, warning->macid,
          warning->slotid, warning->warncode +RecoverIDBase);