MySQL时间转换

1. bigint类型的时间戳

1.1 将bigint转为datetime

FROM_UNIXTIME(时间戳 / 1000)

1.2 将bigint转为date

  • 方式一:

DATE(FROM_UNIXTIME(时间戳 / 1000))
  • 方式二:字符串隐式转换

FROM_UNIXTIME(时间戳 / 1000, '%Y-%m-%d')

1.3 将bigint转为指定格式的varchar

FROM_UNIXTIME(时间戳 / 1000,'%Y-%m-%d %H:%i:%s')

1.4 将bigint转换为年份/月份/周/日期/小时/分钟/秒

EXTRACT(时间类型 FROM FROM_UNIXTIME(时间戳 / 1000))

以获取年份为例:

EXTRACT(YEAR FROM FROM_UNIXTIME(时间戳 / 1000))

1.5 计算bigint经历了多少年/月份/周/日期/小时/分钟/秒(舍弃掉比它小的时间单位)

TIMESTAMPDIFF(时间类型, FROM_UNIXTIME(基准时间戳 / 1000), FROM_UNIXTIME(bigint时间戳 / 1000))

2. datetime类型

2.1 将datetime类型转为date

DATE(时间)

2.2 将datetime类型转换为指定格式的varchar

DATE_FORMAT(时间, '%Y-%m-%d %H:%i:%s')

2.3 将datetime类型转换为年份/月份/周/日期/小时/分钟/秒/Time类型

  • 方式一:

EXTRACT(时间类型 FROM 时间)
  • 方式二:

时间类型(时间)

以获取年份为例:

YEAR(时间)

2.4 将datetime类型转为timestamp

UNIX_TIMESTAMP(时间)

2.5 计算datetime经历了多少年/月份/周/日期/小时/分钟/秒(舍弃掉比它小的时间单位)

TIMESTAMPDIFF(时间类型, 基准时间, 时间)

3. date类型

3.1 将date类型转为datetime

  • 方式一:

DATE_FORMAT(时间, '%Y-%m-%d 00:00:00')
  • 方式二:

STR_TO_DATE(时间, '%Y-%m-%d 00:00:00')
  • 方式三:自动隐式转换

3.2 将date类型转换为指定格式的varchar

DATE_FORMAT(时间, '%Y-%m-%d')

3.3 将date类型转换为年份/月份/日期

  • 方式一:

EXTRACT(时间类型 FROM 时间)
  • 方式二:

时间类型(时间)

以获取年份为例:

YEAR(时间)

3.4 将date类型转为时间戳

UNIX_TIMESTAMP(时间)

3.5 计算date经历了多少年/月份/周/日期/小时/分钟/秒(舍弃掉比它小的时间单位)

TIMESTAMPDIFF(时间类型, 基准时间, 时间)

4. timestamp类型

4.1 将timestamp转为datetime类型

  • 方式一:MySQL自动转换

  • 方式二:

FROM_UNIXTIME(时间戳 / 1000)

4.2 将timestamp转为date类型

DATE(时间戳)

4.3 将timestamp类型转换为指定格式的varchar

DATE_FORMAT(时间, '%Y-%m-%d %H:%i:%s')

4.4 将timestamp类型转换为年份/月份/周/日期/小时/分钟/秒/Time类型

  • 方式一:

EXTRACT(时间类型 FROM 时间)
  • 方式二:

时间类型(时间)

4.5 计算datetime经历了多少年/月份/周/日期/小时/分钟/秒(舍弃掉比它小的时间单位)

TIMESTAMPDIFF(时间类型, 基准时间, 时间)

5. varchar/char类型时间

5.1 将varchar/char类型转为datetime类型

STR_TO_DATE(时间, '%Y-%m-%d %H:%i:%S')

注意:如果时间为年月则输出为null

5.2 将varchar/char类型转为date类型

STR_TO_DATE(时间, '%Y-%m-%d')

5.3 将varchar/char类型转为timestamp类型

  • 方式一:

UNIX_TIMESTAMP(STR_TO_DATE(时间, '%Y-%m-%d %H:%i:%s'))
  • 方式二:

UNIX_TIMESTAMP('%Y-%m-%d %H:%i:%s')

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值