MySQL select formatted date from millisecond field

后端 未结 3 668
野的像风
野的像风 2021-02-02 09:10

I have a column in a MySQL database that contains a date as milliseconds (epoch). I want to build an SQL query that formats the date as something human readable (day, month, yea

相关标签:
3条回答
  • 2021-02-02 09:26

    Try using the FROM_UNIXTIME function like this as given in the manual

    SELECT FROM_UNIXTIME(1196440219);
     -> '2007-11-30 10:30:19'
    

    You could also use formatting like this

    mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
        ->                      '%Y %D %M %h:%i:%s %x');
        -> '2007 30th November 10:30:59 2007'
    
    0 讨论(0)
  • 2021-02-02 09:31
    CREATE DEFINER=`root`@`localhost` FUNCTION `ConvertTimeDelta`(duration int) RETURNS 
    varchar(20) CHARSET utf8mb4
        DETERMINISTIC
    BEGIN
     DECLARE time_delta VARCHAR(20);
     DECLARE date_format VARCHAR(20);
     SET date_format = IF (duration > 3599999, '%H:%i:%s', '%i:%s');
     SET time_delta = TIME_FORMAT(SEC_TO_TIME(duration/1000), date_format);
     RETURN time_delta;
    END
    

    For example select ConvertTimeDelta(4800240) result = 01:20:00 select ConvertTimeDelta(35076) result = 00:35

    0 讨论(0)
  • 2021-02-02 09:44

    If you want to get the microsecond from a field, use %f,

    select FROM_UNIXTIME(DATE_COLUMN/1000,'%Y-%M-%d %H:%i:%s %f') from TABLE_NAME;
    
    +-------------------------------------------------------+
    | FROM_UNIXTIME(CREATETIME/1000,'%Y-%M-%d %H:%i:%s %f') |
    +-------------------------------------------------------+
    | 2016-March-18 16:02:54 342000                         |
    +-------------------------------------------------------+
    

    Source : MYSQL DATE_FORMAT

    0 讨论(0)
提交回复
热议问题