SQL преобразовать строку в формате гггг-мм-ддчч: мм: ссз к дате и времени - PullRequest
0 голосов
/ 17 января 2020

У меня есть переменная в формате строки, например, 2019-11-25T14: 22: 56.529Z. И мне нужно извлечь часть даты этой строковой переменной и извлечь все записи с самой последней датой.

ID   time (in string format, not a timestamp yet)
-------------------------------
1    2019-11-25T15:20:56.539Z
2    2019-11-25T04:23:56.522Z
3    2019-11-25T11:11:54.509Z
4    2019-12-25T10:22:36.129Z
5    2019-12-25T09:22:29.349Z
6    2019-12-25T08:22:56.209Z

Я хочу этот вывод:

ID   time
---------------
4    2019-12-25
5    2019-12-25
6    2019-12-25

В общем, я бы тоже хотелось бы знать, как преобразовать строковую переменную этого типа в формат даты для будущей сортировки по дате и времени. Спасибо!

Ответы [ 2 ]

3 голосов
/ 17 января 2020

Просто используйте функцию подстроки для этого

select substr(time,1,10) as date from tablename;

Обновление Это преобразовало бы его обратно в дату, и вы можете выполнить сортировку

select cast(substr(time,1,10) as date) as date from tablename;
1 голос
/ 17 января 2020

вы можете сделать это, как показано ниже:

SELECT ID, FROM_UNIXTIME(UNIX_TIMESTAMP(time, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"),"yyyy-MM-dd") as time
FROM yourtable
...