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

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"])
过后还是这样的情况

第1个回答  2008-09-03
把那个字段的数据类型换成字符型 也就是Varchar 或者Nvarchar这种.是不会变的.或都变成SmallDateTime这种类型
再有..取值的时候也要用DateTime类型来取.
原来的应该是DateTime类型的.自动长度就是那样.就算只赋值年月.也会自动把时.分.秒赋上值
第2个回答  2008-09-03
存的时候如果字段类型是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
第3个回答  2008-09-03
比如你读取到的日期为:rd["date_time"]
那么显示年-月-日这样写代码就可以:

Convert.ToDateTime(rd["date_time"]).Date.ToString("yyyy-MM-dd")
第4个回答  2008-09-03
Convert.ToDateTime(数据库中的字符名称).ToString("yyyy-MM-dd")本回答被提问者采纳
第5个回答  2008-09-03
重装系统

C# 查询数据库日期段 提取该日期段数据问题
DateTime.Today.Year\/\/获取年 DateTime.Today.Month\/\/月

C#读取数据库日期数据在TextBox中显示,只显示他的年月日不显示时分秒...
最简单的就是取一部分字符串~比如原来是2009-01-01 10:10,你可以这样a.ToString().SubString(0,10),这样就没有时间只有日期了

C#读取数据库中日期型字段问题??
从数据库取日期的时候,就转化成你所需要的格式,例如 convert(varchar(8),tr.[JOArrivalDate],112) JOArrivalDate 注:112 代表20060101 这种格式

C# 将日期插入数据库的datetime字段 报错 求请教
this.dtpBornDate.Value.ToString("yyyy\/MM\/dd hh:mm:ss");

C#中获取系统时间以后插入到数据库中,但是数据库中的时间不正确,每次插 ...
把数据库中该字段类型改成datetime 你改程datetime类型,之前插入的数据格式当然是不变的。什么啊。这个问题还这么纠结,你直接吧数据库该字段设置默认的getdate().字段属性就是datetime.什么 string date=DateTime.Now.ToShortDateString();直接 Datetime date=DateTime.Now;既然你数据库是datetime类型,...

c#里面获取系统时间错误,总是转换不对是哪里错了啊
数据库 EditDate的类型是datetime 而你给他赋的值却是string类型 所以需要把ToShortDateString()去掉 如果不是这个问题 请继续追问 满意请采纳 谢谢

C#程序从数据库取出日期型数据带有 上午,下午 如何把他们去掉
string a = ((DateTime)("获取出来的时间")).ToString("yyyy-MM-dd hh:mm:mm");最后出来a=2011-09-20 23:25:20

用c#处理sql表中datetime字段数据
因为取出来的类型是Object类型,无法直接赋值给DateTime类型变量,必须进行数据类型转换,但不是强制转换。SqlDataReader thisreader = myCommand.ExecuteReader();DateTime start =Convert.ToDateTime(thisreader["tt"]);

关于c# visual studio 2005 关于datetimepicker,日期问题
1.设置 Format 属性为"Custom",选择为自定义 2.设置 CustomFormat 属性,时间显示格式"yyyy-MM",你也可以"yyyy\/MM"等等很多先显示格式.完整的为"yyyy-MM-dd hh-mm-ss" ,间隔号可以自己选择 时间默认是空白的,好象有点难.因为它有个最小时间 1753-1-1 ...

C# datetimepicker 日期与数据比较问题?
var datetime=DateTime.Now; \/\/这是控件或者数据库得到的时间 var date=datetime.ToShortDateString(); \/\/只取日期即年月日 \/\/然后根据你自己的需要(< > =)比较就可以了 有疑问可以追问。

相似回答