1.获取系统当前时间,类型:timestamp 格式yyyy-MM-dd HH:mm:ss
select NOW(),CURRENT_TIMESTAMP(),SYSDATE();
结果:
三者基本没有区别,稍微一点的区别在于:NOW(),CURRENT_TIMESTAMP()都表示SQL开始执行的时间;SYSDATE()表示执行此SQL时的当前时间
select NOW(),CURRENT_TIMESTAMP(),SYSDATE(),SLEEP(2),NOW(),CURRENT_TIMESTAMP(),SYSDATE();
结果:sleep(2)表示等待2s再执行,从结果可以看出SYSDATE在中断前后则相差了2秒;NOW(),CURRENT_TIMESTAMP()完全没区别
2.获取系统当前时间的时间戳,类型:long 单位:s
select unix_timestamp(NOW()),
unix_timestamp(CURRENT_TIMESTAMP()),
unix_timestamp(SYSDATE());
结果:
此时时间精度是s,也可以增加精度,给函数加上参数,表示s后面的小数位数,例如参数3,此时为ms
select unix_timestamp(NOW(3)),
unix_timestamp(CURRENT_TIMESTAMP(3)),
unix_timestamp(SYSDATE(3));
结果:
如果直接输出毫秒单位的时间戳,就是去掉上面中间的小数点,可以借助replace函数
replace函数的用法:replace(object, search,replace),简单解释就是:把object中出现search的全部替换为replace,例如:select replace('www.163.com','w','Ww')--->WwWwWw.163.com
select REPLACE(unix_timestamp(NOW(3)), '.', ''),
REPLACE(unix_timestamp(CURRENT_TIMESTAMP(3)), '.', ''),
REPLACE(unix_timestamp(SYSDATE(3)), '.', '');
结果: