programing

MySQL 밀리초 필드에서 포맷된 날짜 선택

closeapi 2023. 10. 3. 09:20
반응형

MySQL 밀리초 필드에서 포맷된 날짜 선택

MySQL 데이터베이스에 날짜를 밀리초(epoch)로 포함하는 열이 있습니다.날짜를 사람이 읽을 수 있는 것(어떤 형식과 시간대에서도 일, 월, 년, 시간, 분, 초)으로 포맷하는 SQL 쿼리를 만들고 싶습니다.이를 위한 SQL(또는 MySQL 특정) 기능이 있습니까?

사용해 보십시오.FROM_UNIXTIME사용설명서에 나와 있는 것처럼 기능합니다.

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

이렇게 포맷을 사용할 수도 있습니다.

mysql> SELECT FROM_UNIXTIME(UNIX_TIME stamp(),-> '%Y %D %M %h:%i:%s %x';-> '2007년 11월 30일 10:30:59 2007'

필드에서 마이크로초를 가져오려면 %f를 사용합니다.

select FROM_UNIXTIME(CREATETIME/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                         |
+-------------------------------------------------------+

출처 : MYSQL DATE_FORMAT

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

예를 들어 Convert TimeDelta(4800240) 결과 선택 = 01:20:00 Convert TimeDelta(35076) 결과 선택 = 00:35

언급URL : https://stackoverflow.com/questions/18176088/mysql-select-formatted-date-from-millisecond-field

반응형