MySQL、Oracle笔记

2023-12-14 19:31:51

一、时间类

1、时间转字符串(格式:yyyy-MM-dd HH:mm:ss)

  • MySQL
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') 
  • Oracle
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL

2、字符串转时间(格式:yyyy-MM-dd HH:mm:ss)

  • MySQL
SELECT STR_TO_DATE('2022-01-01 12:00:00', '%Y-%m-%d %H:%i:%s') AS date
  • Oracle
SELECT TO_DATE('2022-01-01 12:00:00', 'YYYY-MM-DD HH24:MI:SS') FROM dual

3、获取时间戳(单位:秒)

  • MySQL
SELECT UNIX_TIMESTAMP(NOW())

注意:在这个示例中,获取到时间戳和数据库本身的时区有关
  • Oracle
单位为毫秒示例:
SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400000 + TO_NUMBER(TO_CHAR(SYSTIMESTAMP(3), 'FF')) AS time FROM DUAL;

单位为秒示例:
SELECT (SYSDATE - TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')) * 86400 AS time FROM DUAL;

注意:在上述示例中,获取到时间戳和数据库本身的时区有关,调整TO_DATE('1970-1-1 8', 'YYYY-MM-DD HH24')中小时即可

4、计算时间差(单位:分钟)

  • MySQL
SELECT TIMESTAMPDIFF(MINUTE, '2022-01-01 12:00:00', '2022-01-01 14:30:00')

常用单位为:
SECOND:以秒为单位计算时间差。
MINUTE:以分钟为单位计算时间差。
HOUR:以小时为单位计算时间差。
DAY:以天为单位计算时间差。

注意:计算结果为差值的整数,例如:SELECT TIMESTAMPDIFF(HOUR, '2022-01-01 12:00:00', '2022-01-01 12:10:00')返回结果为0
  • Oracle
单位毫秒示例:
SELECT (TO_DATE('2022-01-01 12:10:00', 'YYYY-MM-DD HH24:MI:SS') - TO_DATE('2022-01-01 12:00:00', 'YYYY-MM-DD HH24:MI:SS')) * 86400000 AS time FROM DUAL;

单位分钟示例:
SELECT (TO_DATE('2022-01-01 12:10:00', 'YYYY-MM-DD HH24:MI:SS') - TO_DATE('2022-01-01 12:00:00', 'YYYY-MM-DD HH24:MI:SS')) * 86400000/60000 AS time FROM DUAL;

文章来源:https://blog.csdn.net/muguazhi/article/details/134799330
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。