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

MySQL从毫秒字段选择格式化日期,mysql,sql,date,time,Mysql,Sql,Date,Time,我在MySQL数据库中有一列,其中包含以毫秒(历元)表示的日期。我想构建一个SQL查询,将日期格式化为人类可读的内容(任何格式和时区的日、月、年、小时、分钟、秒)。是否有SQL(或特定于MySQL的)函数来执行此操作?请尝试使用 从_UNIXTIME(1196440219)中选择; -> '2007-11-30 10:30:19' 您也可以使用如下格式 mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), ->

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

请尝试使用

从_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' mysql>从UNIX\u TIMESTAMP()中选择, ->“%Y%D%M%h:%i:%s%x”); ->“2007年11月30日10:30:59 2007”
如果要从字段中获取微秒,请使用%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                         |
+-------------------------------------------------------+
资料来源:

比如说 选择ConvertTimeDelta(4800240) 结果=01:20:00 选择ConvertTimeDelta(35076)
结果=00:35

您可以在子查询中使用
from\u unixtime
函数。检查下面的答案。很好,谢谢。我的时间是以毫秒为单位的,所以稍微修改一下就完全符合我的要求:
SELECT FROM_UNIXTIME(`column`/1000)
。如果将毫秒除以1000以减少到秒,微秒不一定是0吗?它不一定是0,它应该是1000的倍数(每次使用1000毫秒)。
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                         |
+-------------------------------------------------------+
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