NOW()在每个查询中只计算一次,也就是在查询开始执行时。这就是说,如果在一个单独的查询中多次引用了NOW(),它只会给出值都是一个相同的时间。
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
'1970-01-01 00:00:00'GMT 开始的秒数)。如果以一个参数date调用UNIX_TIMESTAMP(),它将返回该参数值从'1970-01-01 00:00:00'GMT 开始经过的秒数值。date可以是一个DATE字符串,一个DATETIME字符串,一个TIMESTAMP,或者以一个YYMMDD或YYYYMMDD显示的本地时间:mysql> SELECT UNIX_TIMESTAMP();
-> 882226357
mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875996580当UNIX_TIMESTAMP被用于一个TIMESTAMP列时,函数直接返回一个内部的时间戳值,而不进行一个隐含地 “string-to-unix-timestamp” 转换。如果你传递一个超出范围的日期参数给UNIX_TIMESTAMP(),它将返回 0,但是请注意,MySQL 对其仅仅进行基本的检验(年范围 1970-2037,月份 01-12,日期 01-31)。 如果你希望减去UNIX_TIMESTAMP()列,你应该需要将结果强制转换为一有符号整数。查看章节6.3.5 Cast 函数。
FROM_UNIXTIME(unix_timestamp [,format])
'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回一个unix_timestamp参数值,返回值的形式取决于该函数使用于字符串还是数字语境。 如果format给出,返回值依format字符串被格式。format可以包含与DATE_FORMAT()函数同样的修饰符。mysql> SELECT FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'
mysql> SELECT FROM_UNIXTIME(875996580) + 0;
-> 19971004222300
mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
'%Y %D %M %h:%i:%s %x');
-> '1997 23rd December 03:43:30 1997'
SEC_TO_TIME(seconds)
'HH:MM:SS'或HHMMSS格式返回参数seconds被转换到时分秒后的值,返回值的形式取决于该函数使用于字符串还是数字语境:mysql> SELECT SEC_TO_TIME(2378);
-> '00:39:38'
mysql> SELECT SEC_TO_TIME(2378) + 0;
-> 3938
TIME_TO_SEC(time)
time转换为秒数后返回:mysql> SELECT TIME_TO_SEC('22:23:00');
-> 80580
mysql> SELECT TIME_TO_SEC('00:39:38');
-> 2378来源:bc8
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/










