日期:2014-05-18  浏览次数:20519 次

把文本文件导入sql server中的日期处理问题。
文本文件格式
123 王某 机关 1956.3.14
导入的sql server表
int char char datetime

导入的时候总是datetime出错,请问如何处理?
还有类似的日期如1956.123;1956/12/3等,如何处理?

------解决方案--------------------
在windows操作系统中设置时间显示模式.
在sql server中设置语言模式(set language ...)
然后再尝试导入.

如果文本文件中时间模式不统一,不好搞.
------解决方案--------------------
先用varchar类型导入,然后在导入后,把这列的值改成标准的日期格式,还后在把这列的类型成为datetime类型,或者先在文本文件中改成标准的日期程式,然后再导入到sql中
------解决方案--------------------
1、先把文本里面的时间格式统一起来,
2、然后在sql server中设置语言模式(set language ...) ,指定会话的语言环境。
会话语言确定 datetime 格式和系统信息
3、然后在进行数据导入

------解决方案--------------------
给你个建议吧

1、直接按照 varchar 导入
2、用 CAST ( expression AS data_type ) 进行转化,遇到不能转化的,手工修改


------解决方案--------------------
还是把文本文件中时间模式统一一下
------解决方案--------------------
导出前用convert()强制转换一下
例如:

exec master.dbo.xp_cmdshell 'bcp "select Emailaddress,convert(varchar(20),deliverytime,101) from yikaiinfodb.dbo.deliveries" queryout D:\aa.txt -c -Szhai -Usa -P7852'

------解决方案--------------------
用convert()函数转换为你所想要的格式