我在MySQL数据库中有一个列,其中包含一个以毫秒为单位的日期(纪元)。我想构建一个SQL查询,将日期格式化为人类可读的内容(任何格式和时区的日,月,年,小时,分钟,秒)。是否有SQL(或MySQL特定的)函数来执行此操作?
答案 0 :(得分:34)
尝试使用manual
中提供的FROM_UNIXTIME
函数
SELECT FROM_UNIXTIME(1196440219); -> '2007-11-30 10:30:19'
你也可以使用像这样的格式
mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), -> '%Y %D %M %h:%i:%s %x'); -> '2007 30th November 10:30:59 2007'
答案 1 :(得分:8)
答案 2 :(得分:0)
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
例如 选择ConvertTimeDelta(4800240) 结果= 01:20:00 选择ConvertTimeDelta(35076) 结果= 00:35