Как мы можем преобразовать подстроку поля clob в datetime в SQLITE? - PullRequest
0 голосов
/ 09 апреля 2020

Примеры полей данных имеют вид:

DATE+05/06/2022 23:59:59;
DATE+06/05/2022 23:59:59;
DATE+14/05/2022 23:59:59;
DATE+26/05/2022 23:59:59;

Данные SUBSTR, которые мы имеем в датах как:

05/06/2022 23:59:59
06/05/2022 23:59:59
14/05/2022 23:59:59
26/05/2022 23:59:59

Обязательные поля даты имеют вид:

2022-06-05 23:59:59
2022-05-06 23:59:59
2022-05-14 23:59:59
2022-05-26 23:59:59

Вещи, которые я пробовал, которые заполняют NULL как конечный результат:

  • CASTING to datetime [CAST('05/06/2022 23:59:59' as datetime)]
  • Использование datetime () [datetime('05/06/2022 23:59:59')]
  • Использование strftime () [strftime('%Y-%m-%d %H:%M:%S','05/06/2022 23:59:59')]

Ссылки, которые я нашел, которые не имеют отношения:

Я ищу любой другой способ, кроме разделения и объединения поля даты.

1 Ответ

1 голос
/ 10 апреля 2020

SQLite не имеет встроенных функций для преобразования строк в даты. Вам нужно использовать строковые функции для перекомпоновки дат.

Для формата lke: 'DATE+05/06/2022 23:59:59;' вы можете сделать:

substr(mycol, 12, 4) 
|| '-' || substr(mycol, 9,  2)
|| '-' || substr(mycol, 6,  2)
|| ' ' || substr(mycol, 17, 8)

Демонстрация на DB Fiddle :

with mytable as (
    select 'DATE+05/06/2022 23:59:59;' mycol
    union all select 'DATE+06/05/2022 23:59:59;'
    union all select 'DATE+14/05/2022 23:59:59;'
    union all select 'DATE+26/05/2022 23:59:59;'
)
select substr(mycol, 12, 4) 
        || '-' || substr(mycol, 9,  2)
        || '-' || substr(mycol, 6,  2)
        || ' ' || substr(mycol, 17, 8) mydate
from mytable
| mydate              |
| :------------------ |
| 2022-06-05 23:59:59 |
| 2022-05-06 23:59:59 |
| 2022-05-14 23:59:59 |
| 2022-05-26 23:59:59 |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...