在我的SSIS包中,我必须将DateTime中的值转换为相应的INTEGER值.提供了以下示例.
关于如何转换这些的任何想法?
DATETIME INT --------- ---- 1/1/2009 39814 2/1/2009 39845 3/1/2009 39873 4/1/2009 39904 5/1/2009 39934 6/1/2009 39965 7/1/2009 39995 8/1/2009 40026 9/1/2009 40057 10/1/2009 40087 11/1/2009 40118 12/1/2009 40148 1/1/2010 40179 2/1/2010 40210 3/1/2010 40238 4/1/2010 40269 5/1/2010 40299 6/1/2010 40330
解决方法
编辑:转换为float / int不再适用于最新版本的sql Server.请改用以下内容:
select datediff(day,'1899-12-30T00:00:00',my_date_field) from mytable
请注意,字符串日期应该在unambiguous date format中,以便它不受服务器区域设置的影响.
在旧版本的sql Server中,您可以通过强制转换为float,然后转换为int,从DateTime转换为Integer:
select cast(cast(my_date_field as float) as int) from mytable
(注意:你不能直接转换为int,因为如果你过了中午,MSsql会将值向上舍入!)
如果数据中存在偏移量,则显然可以从结果中添加或减去此值
您可以通过直接向后转换来向另一个方向转换:
select cast(my_integer_date as datetime) from mytable
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。