• 几个时间戳相关函数


    format问题注意

               1.yyyy-MM-dd HH:mm:ss是Java中的日期格式。

                  H的大小写代表24小时制和12小时制

               2.oracle中的日期格式为:
                    24小时制:yyyy-MM-dd HH24:mi:ss

                   12小时制:yyyy-MM-dd HH:mi:ss

               3.hivesql中使用的是yyyy-MM-dd HH:mm:ss格式。

               4.mysql中使用的是'%Y-%m-%d %H:%i:%S'格式。

    1.date_format()

    格式化日期时间 

    将日期/时间戳/字符串转换为日期格式 FMT 指定格式的字符串值
     语法:  DATE_FORMAT(date,format)

    1. select DATE_FORMAT('2022-07-05 14:01:35','%Y-%m-%d %H:00:00') ;
    2. //mysql输出结果 '2022-07-05 14:00:00'

    2.from_unixtime()

    时间戳数字>>>>日期

    将时间戳转数字转为特定格式的字符串

    语法:from_unixtime(int类型的值,format)   不指定格式输出为默认格式

    如果输入的int为毫秒,需要先转换为秒,使用cast(值 as int)

    1. select from_unixtime(cast(1553184000488/1000 as int),'yyyy-MM-dd HH:mm:ss')
    2. //hql输出结果 2019-03-22 00:00:00
    3. select FROM_UNIXTIME(1459338786)
    4. select FROM_UNIXTIME(1459338786,'%Y-%m-%d %H:%i:%s')
    5. //mysql输出结果 2016-03-30 19:53:06

    3.unix_timestamp()

    日期>>>>时间戳数字  

    语法:unix_timestamp()  返回当前时间的时间戳

    hql中还有一个特有的用法:unix_timestamp(date,format) 

    date 必须满足了 format的表达式才能返回相应的时间戳秒级数字

    1. select UNIX_TIMESTAMP()
    2. //mysql输出结果 1657007384
    3. select unix_timestamp("2029-05-20","yyyy-MM-dd");
    4. //hql输出结果 1653004800

     4.to_unix_timestamp()   mysql不支持此函数

    日期>>>>时间戳数字

    根据你所提供的字符串格式(在这里是’dd/MMM/yyy:HH:mm:ss Z’)将日期字符串格式化。

    语法:to_unix_timestamp(date,format)

    1. select to_unix_timestamp('16/Mar/2017:12:25:01','dd/MMM/yyy:HH:mm:ss')
    2. //hql输出结果 1489667101

    5.current_timestamp()

    返回查询计算开始时的当前时间戳,没有参数

    和mysql中的now()和sysdate()函数作用相同

    hql可以通过转换类型得到毫秒值 cast(参数 as int)

    这个函数的输出是正常时间,相对于 unix_timestamp 来说 快 8 小时。

    1. select CURRENT_TIMESTAMP()
    2. //mysql输出结果 2022-07-05 15:31:11 返回了当前时间
    3. select cast(current_timestamp() as int)
    4. //hql中输出结果将当前时间转换成了秒 1651751854

    总结:按照指定格式获取当前时间的固定搭配有两个    

    select from_unixtime(unix_timestamp(),"yyyy-MM-dd HH:mm:ss"), date_format(current_timestamp(),"yyyy-MM-dd HH:mm:ss");

    但是 1 比 2 总体慢 8 小时,所以推荐大家使用 2,尽量弃用官方声明的过时函数;

  • 相关阅读:
    重新定义音乐创作:ChatGPT与未来音乐产业的融合
    5分钟搞懂MySQL - 行转列
    数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大难点分析
    github 私人仓库clone的问题
    Vue中Vue router和axios的封装使用。
    springboot实现(select && insert)
    grblHAL的代码学习笔记和解读
    2023-09-06力扣每日一题-摆烂暴力
    本地搭建kafka并用java实现发送消费消息
    JSP 标准标签库(JSTL)
  • 原文地址:https://blog.csdn.net/qq_45302622/article/details/104997450