MySQL从毫秒字段中选择格式化日期

时间:2013-08-11 19:58:51

标签: mysql sql date time

我在MySQL数据库中有一个列,其中包含一个以毫秒为单位的日期(纪元)。我想构建一个SQL查询,将日期格式化为人类可读的内容(任何格式和时区的日,月,年,小时,分钟,秒)。是否有SQL(或MySQL特定的)函数来执行此操作?

3 个答案:

答案 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)

如果您想从字段中获取微秒,请使用%f,

myObject.value()

来源:MYSQL DATE_FORMAT

答案 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