解读sql中timestamp和datetime之间的转换

吾爱主题 阅读:144 2022-12-13 17:10:00 评论:0

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…)
文字输出 %文字 直接输出文字内容

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文地址:https://blog.csdn.net/yinjieer379/article/details/108241154

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容