Преобразовать строковое значение в формат отметки времени - PullRequest
0 голосов
/ 29 января 2019

У меня есть такие данные, как:

trx_date  trx_time
181125    114204
181125    230552
181125    172338
181125    083516
181125    090308

Я хочу преобразовать yymmdd и hhiiss в формат отметки времени yyyy-MM-dd HH:mm:ss

Я пытался использовать синтаксис отметки времени unix:

select 
  trx_date,
  trx_time,
  from_unixtime(unix_timestamp(concat(trx_date, trx_time), 'yyMMddHHmmss'),'yyyy-MM-dd HH:mm:ss')
FROM table 
limit 100;

но выдает error 1064, что может пойти не так?

1 Ответ

0 голосов
/ 29 января 2019

Это не похоже на метку времени Unix, но даты хранятся как yymmdd и hhmmss.Попробуйте конвертировать так:

SELECT STR_TO_DATE(CONCAT('20', trx_date, trx_time), '%Y%m%d%H%i%s')
FROM (
    SELECT '181125' AS trx_date, '114204' AS trx_time UNION ALL
    SELECT '181125' AS trx_date, '230552' AS trx_time UNION ALL
    SELECT '181125' AS trx_date, '172338' AS trx_time UNION ALL
    SELECT '181125' AS trx_date, '083516' AS trx_time UNION ALL
    SELECT '181125' AS trx_date, '090308' AS trx_time
) AS x
-- 2018-11-25 11:42:04 etc

Имейте в виду, что даты имеют двузначный год, что является неоднозначным.В приведенном выше примере предполагается, что все даты 20xx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...