首页 > 解决方案 > 即使使用 DateTime2(4) 字段,MS SQL 导入导出向导也会截断亚秒

问题描述

我一直在使用导入/导出向导来保持插入日期的精度并失去我的日期时间字段的精度时遇到了一些挑战。在第二个日期时间字段上总是会丢失亚秒级时间。

我正在使用 MS SQL Server 2017。为了让导入正常工作,我错过了什么/做错了什么?理想情况下,我想创建一个 DTS 流程来自动执行此操作,但现在只是试图让基本导入可靠地工作。

我的原始数据如下所示:

  2020-12-29 14:59:59,036418016717,2020-12-29 15:00:00.0628
  2020-12-29 15:00:00,000000004249,2020-12-29 15:00:00.0661
  2020-12-29 15:00:00,000000005472,2020-12-29 15:00:00.1448
  2020-12-29 15:00:00,000000001344,2020-12-29 15:00:00.1449

这些字段的我的插入表如下所示:

([INCDATETIME] datetime NOT NULL, 
 [SEQNO] bigint,
 [LOGDATETIME] datetime2(4) NOT NULL

date[DT_DATE]使用 SQL Server 导入和导出向导可以很好地导入第一个日期。对于第二个字段,我尝试了两种date[DT_Date], string(24),可用的日期时间格式。我需要的。

最好的情况是我的第二个日期始终导入为“2020-12-29 15:00:00.0000”,将我绝对需要的亚秒数归零,因为我需要比较几个类似的字段.

我很确定我需要使用 DateTime2 作为目标字段,即使在这个小测试脚本中它也能正确显示。那么为什么它不能与向导一起使用呢?

DECLARE @mydate date = CONVERT(date,@mytime);
DECLARE @mydatetime2 datetime2(4) = CONVERT(datetime2,@mytime);


SELECT @mytime as 'String', 
       @mydate as 'Date', 
       @mydatetime2 AS 'Datetime2'

String                   Date       Datetime2
------------------------ ---------- ---------------------------
2020-12-29 15:00:00.9494 2020-12-29 2020-12-29 15:00:00.9494

标签: sql-servertsqldatetime

解决方案


推荐阅读