请问mysql的str_to_date的问题
 insert into ddd(ddd) values(str_to_date('2010-11-11 11:11:11','%y-%m-%d %h:
%i:%s'));1411 - Incorrect datetime value: '2010-11-11 11:11:11' for function str_to_t
ime
这里ddd是一个表,(ddd)是该表中的datetime类型的字段我的sql为什么失败呢?
请问c++如何写入mysql表中一个datetime类型的字段数据

解决方案 »

  1.   

    你的格式化错了。mysql> select str_to_date('2010-11-11 11:11:11','%y-%m-%d %h:%i:%s');
    +--------------------------------------------------------+
    | str_to_date('2010-11-11 11:11:11','%y-%m-%d %h:%i:%s') |
    +--------------------------------------------------------+
    | NULL                                                   |
    +--------------------------------------------------------+
    1 row in set, 1 warning (0.00 sec)
    mysql> select str_to_date('2010-11-11 11:11:11','%Y-%m-%d %H:%i:%s');
    +--------------------------------------------------------+
    | str_to_date('2010-11-11 11:11:11','%Y-%m-%d %H:%i:%s') |
    +--------------------------------------------------------+
    | 2010-11-11 11:11:11                                    |
    +--------------------------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  2.   

    mysql> insert into ddd values(str_to_date('2010-11-11 11:11:11','%Y-%m-%d %h:%i:
    %s'));
    Query OK, 1 row affected (0.05 sec)
      

  3.   

    以下说明符可用在 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位数)
     
    %%
     ‘%’文字字符
     
      

  4.   

    多谢
    mysql> insert into ddd values('2010-11-11 11:11:11');
    Query OK, 1 row affected (0.05 sec)这样也可以
    请问加str_to_date和不加有什么区别么?
    效率上面那个高呢?