MySQL、Oracle笔记

一、时间类

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值