C# 读取 数据库 datetime 日期数据问题

C#中遇到的一个问题我用的是sqlserver2005,在使用c#往数据库写日期(2008-9-3)的时候,写的时候sql语句里面是正确的(2008-9-3),到了数据库... C#中遇到的一个问题
我用的是sqlserver2005 ,在使用c#往数据库写日期(2008-9-3)的时候,
写的时候sql语句里面是正确的(2008-9-3),到了数据库里面就变成(2008-9-3 00:00:00)了,这还不算,在读取这个值的时候,为什么取到的值是3/9/2008 AM 12:00:00
谁有解决办法?最好能告诉我理由
请帮忙解释一下:

1,为什么读取的时候是(3/9/2008 AM 12:00:00)。为什么是上午12点,这个12点是早上0点,还是中午的12点
为什么从数据库的datetime类型的字段(2008-9-3 00:00:00)读出来确实这样的格式(3/9/2008 AM 12:00:00)

2,还有,我在另一个服务器上,看到,同样的程序,同样的数据库,我写入数据库(2008-9-3),在数据库里却是(2008-9-3 0:00:00)小时上少一个一0,这是为什么?

String.Format("{0}",myReader["EffectDate"])
过后还是这样的情况
展开
 我来答
天雨流风
2008-09-03 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:83.1万
展开全部
把那个字段的数据类型换成字符型 也就是Varchar 或者Nvarchar这种.是不会变的.或都变成SmallDateTime这种类型
再有..取值的时候也要用DateTime类型来取.
原来的应该是DateTime类型的.自动长度就是那样.就算只赋值年月.也会自动把时.分.秒赋上值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zengwei61
2008-09-03 · TA获得超过113个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:118万
展开全部
存的时候如果字段类型是datetime 那样显示是正确的

取的时候,你可以这样取:DATENAME(year,字段名称)+'-'+DATENAME(month,字段名称)+DATENAME(day,字段名称)

或者:
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
或者:
http://www.cnblogs.com/chuncn/archive/2008/04/03/1136634.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘起政
2008-09-03 · TA获得超过367个赞
知道小有建树答主
回答量:709
采纳率:0%
帮助的人:478万
展开全部
比如你读取到的日期为:rd["date_time"]
那么显示年-月-日这样写代码就可以:

Convert.ToDateTime(rd["date_time"]).Date.ToString("yyyy-MM-dd")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Rabbitヽ
2008-09-03 · 超过10用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:21.7万
展开全部
Convert.ToDateTime(数据库中的字符名称).ToString("yyyy-MM-dd")
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq56297829
2008-09-03 · TA获得超过550个赞
知道答主
回答量:177
采纳率:0%
帮助的人:0
展开全部
重装系统
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式