我有一个场景,我必须将数据从Oracle表移动到SQL Server表。Oracle中的列是Timestamp(6),6是精度。现在我不能以字符串格式发送Oracle数据。我直接从Oracle表中提取数据,因此无法在oracle端对其进行格式化。我能做的就是用VB6.Format格式化数据,使其适用于SQL Server DateTime。我正在为Oracle Date to SQL Server Datetime执行此操作。
时间戳和日期时间也可以做类似的事情吗?
发布于 2011-04-20 19:48:16
这取决于您使用的SQL server版本。正如@onedaywhen在他的评论中指出的那样,你可以使用DATETIME,但你会失去一些精度,因为DATETIME只能精确到3位小数(3.33毫秒精度);然而,如果你使用的是SQL Server的早期版本,那就是你得到的。
如果你运行的是SQL Server2008,你可以使用DATETIME2,它精确到100纳秒或7位数,它可以处理你想要做的事情。
如果你真的想这样做,你可以修改一些东西来使用十进制列来表示日期/时间。您可以将列设置为十进制(20,6),并将其格式化为
YYYYMMDDHHIISS.ffffff
哪里
YYYY=year
MM=month (01-12)
DD=day
HH=hour (24 hour clock)
II=minutes
SS=seconds
ffffff=fractional seconds实现留给读者作为练习。
(警告:如果您选择使用这样的格式,请注意,在原始版本的Necronomicon中,同样的日期/时间格式也被用作计时的基础,有传言称,这直接导致了作者阿卜杜勒·阿尔哈兹雷德被称为“疯狂的阿拉伯人”。:-)
Cthulhu fthagn.
https://stackoverflow.com/questions/5728676
复制相似问题