首页 新闻 会员 周边 捐助

MySQL 转JSON中关于日期字段的问题

0
悬赏园豆:50 [已解决问题] 解决于 2014-03-13 17:16

1、数据库是SQLServer 2005 ,开发环境是VS2010,使用Newtonsoft.Json对DataTable进行JSON转换的时候,一切正常;

2、数据库切换到MySQL,查询的是相同的表结构数据,JSON后格式变成如下:

[{ "FDate" :{ "IsValidDateTime" : TRUE,
"Year" : 2014,
"Month" : 3,
"Day" : 12,
"Hour" : 16,
"Minute" : 34,
"Second" : 25,
"Millisecond" : 0,
"IsNull" : FALSE,
"Value" : "2014-03-12T16:34:25" },

"FBillNo" : "B201403130001", 以下字段省略...}]

正常格式:

[{ "FDate" : "2014-03-06T00:00:00",
"FBillNo" : "B201403130001",以下字段省略...}]

问题补充:

使用System.Runtime.Serialization.Json.DataContractJsonSerializer这个可以正常的转换...

Jesenl的主页 Jesenl | 初学一级 | 园豆:161
提问于:2014-03-13 11:00
< >
分享
最佳答案
0

装载数据库数据的对象格式发生变化了吧 跟 Newtonsoft.Json 没关系

收获园豆:40
Yu | 专家六级 |园豆:12990 | 2014-03-13 13:52

在 MYSQL中,我把FDate字段分别设置为date、time、DateTime以及timestamp,查询出来全部变成这样的格式;设置为varchar是正常的。

Jesenl | 园豆:161 (初学一级) | 2014-03-13 13:56

我想知道,是不是因为MySQL的字符编码问题呢?

Jesenl | 园豆:161 (初学一级) | 2014-03-13 13:57

@Jesenl: 你看看MYSQL的连接字符串是不是有 

Allow Zero Datetime=true 

Yu | 园豆:12990 (专家六级) | 2014-03-13 17:06

@Yu: 是啊  有这个啊

Jesenl | 园豆:161 (初学一级) | 2014-03-13 17:07

@Yu: 嘿 哥们 你真有才,明白什么意思了,已解决。

Jesenl | 园豆:161 (初学一级) | 2014-03-13 17:15

我的MySQL数据库是从SqlServer2005导过来的,里面有些日期字段可以设置为null,在MySQL数据库中,字段为空的值变为不为空且用“0000-00-00 00:00:”填充,我开始解决的办法是在连接字符串增加Allow Zero Datetime=true ,结果就导致出现上述问题;现在把Allow Zero Datetime=true 从连接字符串中删掉,重新修改MySQL数据库的表机构,并把值为“0000-00-00 00:00:”修改为null 解决。

Jesenl | 园豆:161 (初学一级) | 2014-03-13 17:21
其他回答(1)
0

你取出来的数据是放dataset里面还是别的

收获园豆:10
丫的 | 园豆:1575 (小虾三级) | 2014-03-13 13:41

在dataset中,断点dataset相同;

支持(0) 反对(0) Jesenl | 园豆:161 (初学一级) | 2014-03-13 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册