Помогите преобразовать даты PostgreSQL в даты SQL Server

Привет я делаю некоторое преобразование данных от PostgreSQL до Microsoft SQL Server. До сих пор это имеет, все подходили, и у меня почти есть все выполнение сценария дампа базы данных. Существует только одна вещь, которая теперь испорчена: даты.

Даты выводятся к формату строки. Это два формата в качестве примера, которые я видел до сих пор: '2008-01-14 12:00:00' и более точное '2010-04-09 12:23:45.26525'

Я хотел бы regex (или набор regexs), что я мог работать так, чтобы заменил их SQL Server совместимые даты. Кто-либо знает, как я могу сделать это?

1
задан Earlz 26 May 2010 в 20:15
поделиться

1 ответ

Первый совместим с datetime , но второй слишком точен. Он уместится в sqldatetime2 , который доступен в SQL Server 2008:

select cast('2008-01-14 12:00:00' as datetime)
,      cast('2010-04-09 12:23:45.26525' as datetime2)

Для более ранней версии вы можете использовать подстроку , чтобы сократить неустранимую точность:

select cast(substring('2010-04-09 12:23:45.26525',1,23) as datetime)

Для regex, чтобы удалить любые дополнительные цифры (с использованием синтаксиса регулярных выражений Perl):

(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3})\d*

И заменить на:

$1

Что соответствует части регулярного выражения между скобками () .

2
ответ дан 3 September 2019 в 00:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: