用 STR_TO_DATE例子如下:mysql> SELECT-> STR_TO_DATE('2010~10~22 20.55.09',-> '%Y~%m~%d %k.%i.%s' ) A;+---------------------+| A |+---------------------+| 2010-10-22 20:55:09 |+---------------------+1 row in set (0.00 sec)注:%W 星期名字(Sunday……Saturday) %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)

%Y 年, 数字, 4 位 %y 年, 数字, 2 位 %a 缩写的星期名字(Sun……Sat) %d 月份中的天数, 数字(00……31) %e 月份中的天数, 数字(0……31) %m 月, 数字(01……12) %c 月, 数字(1……12) %b 缩写的月份名字(Jan……Dec) %j 一年中的天数(001……366) %H 小时(00……23) %k 小时(0……23) %h 小时(01……12) %I 小时(01……12) %l 小时(1……12) %i 分钟, 数字(00……59) %r 时间,12 小时(hh:mm:ss [AP]M) %T 时间,24 小时(hh:mm:ss) %S 秒(00……59) %s 秒(00……59) %p AM或PM %w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天 %u 星期(0……52), 这里星期一是星期的第一天 %% 一个文字“%”。 所有的其他字符不做解释
sqlserver方法就更多了比如datediff等等,然后如果不能直接访问目标服务器,可以导出成文件,在到目标服务器导入即可
可以用的第一种方式,但是必须有年,例如:where 字段名 between '2009-7-1' and '2009-7-7' 如果你不限制年,比如判断生日的时候用,那么需要使用函数转换,例如:where DATE_FORMAT(字段名,'%m%d') between '0701' and '0707'
在mysql中,这种计算可用TIMESTAMPDIFF函数来解决,但是解决过程中需要将数据多次加工。
1、创建测试表及插入测试数据:
2、目前要结算time2和time1的时间差,用如下语句:
来计算两个时间之间的秒数差。
然后,得到的结果除以3600,即为这两个时间之间的小时数。
最后因为要求保留2位小数,则通过round函数,四舍五入,取出2位小数即可。