您好我正在从PostgreSQL到Microsoft SQL Server进行一些数据转换。到目前为止,它一切顺利,我几乎运行整个数据库转储脚本。现在只有一件事搞砸了:日期。
将日期转储为字符串格式。这是我到目前为止看到的两种示例格式:'2008-01-14 12:00:00'
和更精确的'2010-04-09 12:23:45.26525'
我想要一个我可以运行的正则表达式(或一组正则表达式),以便用SQL Server兼容日期替换它们。谁知道我怎么能这样做?
答案 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
哪个匹配()
括号之间的正则表达式部分。