MySQL时间戳与日期时间转换

时间戳与日期时间转换

参考:mysql 将时间戳直接转换成日期时间 - snn1410

-- 1、将时间戳转换为日期时间
SELECT FROM_UNIXTIME( 1585108245.567);
运行结果:2020-03-25 11:50:45.567

-- 也可以使用修饰符自定义格式
SELECT FROM_UNIXTIME( 1585108245.567,'%Y年%m月%d日 %H时%i分%S秒 %f');
运行结果: 20200325115045567000  --详解下翻

-- 2、若时间戳为负数,该方法的结果为null值
select FROM_UNIXTIME(-2);
运行结果:null

-- 解决方法:使用函数 DATE_ADD(date,INTERVAL expr type);
select DATE_ADD(FROM_UNIXTIME(0),INTERVAL -2 SECOND);
运行结果:1970-01-01 07:59:58  --详解下翻
-- 将日期转换为时间戳
select UNIX_TIMESTAMP('2020-03-25 11:11:45');
运行结果: 1585105905

-- 其无参方法将当前系统时间转换为时间戳
select UNIX_TIMESTAMP();
运行结果: 1585108852

详细:
FROM_UNIXTIME()函数,具体如下

  • FROM_UNIXTIME(unix_timestamp,format) 返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。
  • 下列修饰符可以被用在format字符串中(粗体为常用):
修饰符含义值例举
%Y年,4 位数字2019
%y年,后 2 位数字19
%M月,英文名January……December
%m月,数字,不足两位数补001……12
%b月,英文缩写Jan……Dec
%c月,数字1……12
%D日,英文序数1st、2nd、3rd、
%d日,数字,不足两位数补000……31
%e日,数字0……31
%j一年中的第n天,不足三位数补0001……366
%W星期,英文名Sunday……Saturday
%w星期,数字0=Sunday ……6=Saturday
%a星期,英文缩写Sun……Sat
%U一年中的第n星期0……52,这里星期天是星期的第一天
%u一年中的第n星期0……52,这里星期一是星期的第一天
%H时,24时制,不足两位数补000……23
%h时,12时制,不足两位数补001……12
%k时,24时制0……23
%I (大写的 i)时,12时制,不足两位数补001……12
%l (小写的 L)时,12时制1……12
%i分,数字,不足两位数补000……59
%S秒,不足两位数补000……59
%f毫秒,不足6位补00.000000 …… 0.999999
%s秒,不足两位数补000……59
%pAM或PM
%r时间,12小时制hh:mm:ss [AP]M
%T时间,24小时制hh:mm:ss
%%字符“%”

DATE_ADD()函数,具体如下

  • DATE_ADD(date,INTERVAL expr type),该函数可以得到在原有的日期时间上增加一段时间后的日期时间。
  • date参数为日期时间格式的数据;
  • INTERVAL为关键字;
  • type为时间单位。
  • 在上面的SQL例子中,即为在基准时刻 1970-01-01 08:00:00 的基础上加上 -2 秒,得到了时刻 1970-01-01 07:59:58
  • 关于基准时刻需要注意,它是根据不同时区来设定的。我们国内是使用的东八区的时区,所以基准时刻是08:00:00,若是在0时区,则基准时刻为00:00:00。至于MySQL数据库是根据哪里判断的时区,还不清楚,以后补充。

参考:
Mysql中处理1970年前的日期(unixtime为负数的情况)负数时间戳格式化 - 与f

type值预期的expr格式
MICROSECOND整数
SECOND整数
MINUTE整数
HOUR整数
DAY整数
WEEK整数
MONTH整数
QUARTER整数(季节)
YEAR整数
SECOND_MICROSECOND‘秒.毫秒’
MINUTE_MICROSECOND‘分钟数.毫秒’
MINUTE_SECOND‘分:秒’
HOUR_MICROSECOND‘小时数.毫秒’
HOUR_SECOND‘时:分:秒’
HOUR_MINUTE‘时:分’
DAY_MICROSECOND‘日期号数.毫秒’
DAY_SECOND‘日 时:分:秒’
DAY_MINUTE‘日 时:分’
DAY_HOUR‘日 小时’
YEAR_MONTH‘年-月’
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值