帮助将PostgreSQL日期转换为SQL Server日期

时间:2010-05-26 20:15:50

标签: sql-server regex datetime

您好我正在从PostgreSQL到Microsoft SQL Server进行一些数据转换。到目前为止,它一切顺利,我几乎运行整个数据库转储脚本。现在只有一件事搞砸了:日期。

将日期转储为字符串格式。这是我到目前为止看到的两种示例格式:'2008-01-14 12:00:00'和更精确的'2010-04-09 12:23:45.26525'

我想要一个我可以运行的正则表达式(或一组正则表达式),以便用SQL Server兼容日期替换它们。谁知道我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

第一个与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)

对于早期版本,您可以使用substring来消除不可存储的精度:

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

对于正则表达式删除任何其他数字(使用perl正则表达式语法):

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

并替换为:

$1

哪个匹配()括号之间的正则表达式部分。