把文本文件导入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()函数转换为你所想要的格式