MySQL 日期和时间戳的转换

数据库中时间戳概念:
把时间t转换成从 1970-01-01 00:00 开始到时间t所经过的秒数。这个数值就是时间t对应的时间戳。
由于是数值方便比较和运算

1.日期转时间戳

— 转十位 select UNIX_TIMESTAMP(‘2018-12-25 12:25:00’);

结果:1545711900

— 转十三位 SELECT REPLACE(unix_timestamp(current_timestamp(3)),’.’,”);

结果:1545711900021

2.时间戳转日期:

FROM_UNIXTIME(unix_timestamp) –unix_timestamp为时间戳

— 十位转 select FROM_UNIXTIME(1545711900);

结果:2018-12-25 12:25:00

有些应用生成的时间戳是比这个多出三位,是毫秒表示,如果要转换,需要先将最后三位去掉(标准的10位数字,如果是13位的话可以以除以千的方式)

— 十三位转 select FROM_UNIXTIME(1597536937000/1000);

结果:2020-08-16 08:15:37.0000

 

Mysql 将秒数转换成时分秒形式

 

由于咱们是东8区,返回的是 1970-01-01 08:00:00 所以需要减去 8 小时

select date_format(date_sub(from_unixtime(288), INTERVAL 8 HOUR), '%H:%i:%s') from dual;

 

SELECT
ll.user_id,
ll.course_id,
ll.access_time,
ll.leave_time,
DATE_FORMAT(
date_sub(
from_unixtime(ll.duration_time),
INTERVAL 8 HOUR
),
“%H:%i:%s”
) AS duration_datetime,
ll.duration_time,
ll.ip,
ll.video_id,
ll.course_live_day,
ll.course_live_start,
FROM_UNIXTIME(ll.course_live_start) AS live_start_dt,
ll.course_live_end,
u.nickname,
c.title
FROM
`efa_live_log` `ll`
LEFT JOIN `efa_user` `u` ON `ll`.`user_id` = `u`.`id`
LEFT JOIN `efa_course` `c` ON `ll`.`course_id` = `c`.`id`
WHERE
`ll`.`user_id` = ‘3694’
AND `ll`.`course_id` = ‘195’
ORDER BY
`ll`.`id` DESC
LIMIT 0,
10

(文章今日已有 1 人访问,总访问量 14 ::>_<::)
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇