解读sql中timestamp和datetime之间的转换
目录
- sql中timestamp和datetime的转换
- 示例如下
- 1.现在数据库的datetime时间
- 2.将现在数据库的datetime时间转换为timestamp格式
- 3.将转换成的timestamp格式的数据重新转回到datetime格式
- 附表
- 总结
sql中timestamp和datetime的转换
互相转换说明:
- 将datetime转换为timestamp格式,使用UNIX_TIMESTAMP()函数;
- 将timestamp转换为datetime格式,使用FROM_UNIXTIME()函数;
示例如下
1.现在数据库的datetime时间
select now() from dual

2.将现在数据库的datetime时间转换为timestamp格式
select UNIX_TIMESTAMP(now()) from dual

注意,字符串格式的日期存储也可以直接转换为时间戳:
select UNIX_TIMESTAMP('2020-08-08') from dual
select UNIX_TIMESTAMP('20200808') from dual
输出都是:

3.将转换成的timestamp格式的数据重新转回到datetime格式
select FROM_UNIXTIME(UNIX_TIMESTAMP(now())) from dual

注意,时间戳也可以直接转换为字符串格式的日期存储:
select FROM_UNIXTIME(UNIX_TIMESTAMP(now()),'%Y-%m-%d') from dual
输出:

select FROM_UNIXTIME(UNIX_TIMESTAMP(now()),'%Y-%m-%d %H:%i:%s') from dual
输出:

附表
MySQL日期格式化(format)取值范围:
| 值 | 含义 |
|---|---|
| 秒 | %S、%s 两位数字形式的秒( 00,01, …, 59) |
| 分 | %I、%i 两位数字形式的分( 00,01, …, 59) |
| 小时 | %H 24小时制,两位数形式小时(00,01, …,23) |
| %h 12小时制,两位数形式小时(00,01, …,12) | |
| %k 24小时制,数形式小时(0,1, …,23) | |
| %l 12小时制,数形式小时(0,1, …,12) | |
| %T 24小时制,时间形式(HH:mm:ss) | |
| %r 12小时制,时间形式(hh:mm:ss AM 或 PM) | |
| %p AM上午或PM下午 | |
| 周 | %W 一周中每一天的名称(Sunday,Monday, …,Saturday) |
| %a 一周中每一天名称的缩写(Sun,Mon, …,Sat) | |
| %w 以数字形式标识周(0=Sunday,1=Monday, …,6=Saturday) | |
| %U 数字表示周数,星期天为周中第一天 | |
| %u 数字表示周数,星期一为周中第一天 | |
| 天 | %d 两位数字表示月中天数(01,02, …,31) |
| %e 数字表示月中天数(1,2, …,31) | |
| %D 英文后缀表示月中天数(1st,2nd,3rd …) | |
| %j 以三位数字表示年中天数(001,002, …,366) | |
| 月 | %M 英文月名(January,February, …,December) |
| %b 英文缩写月名(Jan,Feb, …,Dec) | |
| %m 两位数字表示月份(01,02, …,12) | |
| %c 数字表示月份(1,2, …,12) | |
| 年 | %Y 四位数字表示的年份(2015,2016…) |
| %y 两位数字表示的年份(15,16…) | |
| 文字输出 | %文字 直接输出文字内容 |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
赞 (0)
