关于日期格式的转换

woshizhaoxuhui 2014-03-31 03:27:26
一个日期的字段,在EXCEL中是这样保存的“20140304”,在导入SQL2008R2的时候报错,说不能显示转换,有没有办法解决这个问题,比如在导入时转换什么的?谢谢了!
...全文
117 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2014-03-31
  • 打赏
  • 举报
回复
用openrowset查询Excel,转换字段的数据类型后插入目标表.

select cast([字段名] as date),*
from openrowset('Microsoft.ACE.OLEDB.12.0',
                'Excel 12.0;Database=[Excel文件名];HDR=YES',
                'SELECT * FROM [sheet1$]')
直面人生 2014-03-31
  • 打赏
  • 举报
回复
引用 6 楼 woshizhaoxuhui 的回复:
我的做法是这样的,先把excel中涉及日期的列改为“文本”,导入数据库,再把数据从临时表中导入到目标表中去。 我发现即使我把excel中的相关列修改成”文本“,导入后默认的字段类型还是float
cast 转下就行 SELECT CAST(CAST(日期字段 as varchar) AS DATE)
spiritofdragon 2014-03-31
  • 打赏
  • 举报
回复
引用 6 楼 woshizhaoxuhui 的回复:
我的做法是这样的,先把excel中涉及日期的列改为“文本”,导入数据库,再把数据从临时表中导入到目标表中去。 我发现即使我把excel中的相关列修改成”文本“,导入后默认的字段类型还是float
是float 没关系,转型一下就好了。CAST(CAST(CAST(日期字段 as int) as varchar) AS DATE)
快溜 2014-03-31
  • 打赏
  • 举报
回复
SELECT CAST('20140304' AS DATE)
woshizhaoxuhui 2014-03-31
  • 打赏
  • 举报
回复
引用 5 楼 cmlsc2004 的回复:
excel里把该列格式转换成标准的时间格式,应该可以吧。
在excel里直接改为时间的话,该列就显示为”########“,也不行
woshizhaoxuhui 2014-03-31
  • 打赏
  • 举报
回复
我想了一下,可以用sql2008中的字符串函数手工假如”-“符号,但那样就太过繁琐了
woshizhaoxuhui 2014-03-31
  • 打赏
  • 举报
回复
我的做法是这样的,先把excel中涉及日期的列改为“文本”,导入数据库,再把数据从临时表中导入到目标表中去。 我发现即使我把excel中的相关列修改成”文本“,导入后默认的字段类型还是float
cmlsc2004 2014-03-31
  • 打赏
  • 举报
回复
excel里把该列格式转换成标准的时间格式,应该可以吧。
woshizhaoxuhui 2014-03-31
  • 打赏
  • 举报
回复
SqlServer中的数据列是date类型 excel中的数据没有双引号,就是20140328,没有双引号
發糞塗牆 2014-03-31
  • 打赏
  • 举报
回复
另外sqlserver里面对应的数据列是什么类型?
--小F-- 2014-03-31
  • 打赏
  • 举报
回复
在EXCEL里面将改行设置为文本试试。
發糞塗牆 2014-03-31
  • 打赏
  • 举报
回复
你的excel数据中有双引号还是没有?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧