MySQL转换时间戳的应用实践(mysql转换成时间戳)
MySQL转换时间戳的应用实践
时间戳是目前服务器端语言所使用的重要通用数据类型,在MySQL中有它独特的表示方式,我们可以使用MySQL自身的函数来完成时间戳的转换和输出,从而实现不同语言收发时间的兼容和处理业务的准确化。
时间戳的转换有 3 种方式:UNIX格式的时间戳,北京时间和当前服务器的时间。其中,UNIX格式时间戳,也叫Unix timestamp 格式,是通过计算从1970年1月1日0时0分0秒 UTC 到当前时间的秒数,表示为一个10位长度的数字,如果是MySQL可以用UNIX_TIMESTAMP()来转换。例如,UNIX_TIMESTAMP(str_date)可以将str_date字符串转换成时间戳,如下面这段代码:
SELECT UNIX_TIMESTAMP(‘2020-05-15’);
上边的代码可以将 2020-05-15 字符串转换成时间戳1589504000 。
另外,还有用MySQL的FROM_UNIXTIME()函数来将UNIX时间戳转换为指定格式的日期时间格式,如下面这段代码:
SELECT FROM_UNIXTIME(1589504000,’%Y-%m-%d’);
上边的代码可以将1589504000转到2020-05-15的日期格式输出。
除了UNIX格式的时间戳,MySQL还可以用函数NOW(),SYSDATE(),CURDATE()或者CURRENT_TIMESTAMP()等函数来转换标准北京时间和服务器时间。下面是一段说明效用的代码:
SELECT NOW();//返回标准北京时间
SELECT SYSDATE();//返回服务器当前时间
CURDATE();//返回当前服务器时间,仅显示日期,而不显示具体时间
SELECT CURDATE();
MySQL转换时间戳的应用实践非常有必要,它能够令收发时间更为同步,这么做可以很大程度上提高服务器的性能,并帮助实现业务的准确处理。那么,我们如何识别UNIX时间戳?在不同的操作系统中,UNIX时间戳可以理解为不同语言收发时间数据的表示形式,十六进制或者八进制,以10位数字的形式出现,位数之外的默认为0。从这一点来看,就像Java中的Long或者C++中的double是拥有同样的兼容性,用于收发时间的表示形式,只有处理正确时间戳,才能达到跨语言的时间相容。