我用DataSet的GetXml方法得到一个包含表格数据的Xml格式的字符串,但其中的Datetime类型的数据不能直接在OpenXml中使用?

Sodar 2002-09-29 09:47:28
我用DataSet的GetXml方法得到一个包含表格数据的Xml格式的字符串,
该表格中包含一个Datetime字段的数据,但生成的xml字符串中该数据显示为:

<DatasetRow>
<TableRow>
<BeginTime>2002-12-12T00:00:00.000000+08</BeginTime>
...
</TableRow>
</DatasetRow>

这样的一段数据在用OpenXml打开时却报错,打开方式如下:
select * from openxml(@hDoc, N'/DatasetRow/TableRow', 2)
with (BeginTime datetime)

系统提示类型转换错误,请问如何解决?

我想可能有两种方法:
1.在dataset.writexml时设置datetime类型的格式
2.在openxml时设定打开的datetime数据的类型
但我不知道该如何做,请高人指点?

...全文
121 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yarshray 2002-10-02
  • 打赏
  • 举报
回复
不是没人知道,我估计大家都这样写!
反正我就这样!
saucer 2002-10-02
  • 打赏
  • 举报
回复
in sql server 2000,

select cast('2002-08-10 12:12:00.000' as datetime) as BeginTime
==> I got
2002-08-10 12:12:00.000

select cast('2002-12-12T00:00:00.000000+08' as datetime) as BeginTime
==> I got
Server: Msg 241, Level 16, State 1, Line 1
Syntax error converting datetime from character string.
yarshray 2002-10-02
  • 打赏
  • 举报
回复
to: saucer
select cast(BeginTime as datetime) as BeginTime
from openxml(@hDoc, N'/DatasetRow/TableRow', 2)
with (BeginTime varchar(19))
saucer 2002-10-02
  • 打赏
  • 举报
回复
how can you cast it? I get
"Syntax error converting datetime from character string"
when I try to cast or convert in SQL Server
Sodar 2002-10-01
  • 打赏
  • 举报
回复
有没有知道啊?
yarshray 2002-09-30
  • 打赏
  • 举报
回复
yy/mm/dd
Sodar 2002-09-30
  • 打赏
  • 举报
回复
我现在用的方法如下:
select cast(BeginTime as datetime) as BeginTime
from openxml(@hDoc, N'/DatasetRow/TableRow', 2)
with (BeginTime varchar(19))

倒是可以用,但是如果字段多的话写起来很麻烦,
不知道有没有更好的办法?

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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