Существует ли переносимое преобразование столбца datetime в строку с использованием SQL - PullRequest
0 голосов
/ 03 января 2019

У меня есть столбец, определенный как datetime в sybase, и я преобразовал его в строку, используя

ISNULL(CAST(CAST(most_recent_trades.asof_date AS DATE) AS VARCHAR(20))

Оказывается, представление этого в виде строки в sybase отличается от моего блочного теста db, который равен H2.

In sybase
Sep  1 2016

In H2
2016-09-01

Столбец также определяется как дата и время в H2.

Есть ли способ преобразовать столбец datetime в строку с одинаковым строковым представлением как в Sybase, так и в H2 (мне не нужна временная часть этого, если это поможет)?

РЕДАКТИРОВАТЬ: Я не думаю, что есть какой-либо способ сделать это переносимым способом с помощью одной функции, поэтому я решил использовать функции YEAR, MONTH и DAY (все они доступны в Sybase и H2), извлечь части и объедините их, чтобы сделать дату, которая будет выглядеть одинаково, когда представлена ​​как строка в Sybase и H2. На данный момент это работает для меня.

1 Ответ

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

Я бы использовал формат 121 функции CONVERT () , а затем получил бы часть даты, как в:

substring(convert(varchar(30), most_recent_trades.asof_date, 121), 1, 10)
...