请教 Datetime 类型转换?

狗豆腐 2006-10-16 05:32:24
本人在Win Form编程中,从数据库拿出一列类型是Datetime的数据如:2006-10-1610:46:19
把它们写到XML文件中,就变成了:2006-10-16T10:46:19+08:00
本人又想把这个时间又返回到数据库中去检索,但总是出现类型不匹配问题.
本人用过两种方法
方法一:
string changeTime=lasttime.Replace('T',' ');
string changeTime1=changeTime.Replace("0000+08:00","");
方法二:
System.DateTime DT = Convert.ToDateTime(strtime);
string strCDT = DT.Year + "-" + DT.Month + "-" + DT.Day + " " + DT.Hour + ":" + DT.Second + ":" + DT.Minute;
但都没有效果.
请教有没有什么办法解决这个问题?
...全文
233 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
一直学习 2006-10-16
  • 打赏
  • 举报
回复
晕。。吃饭前打开的网页 回来以后都结贴了。。。
一直学习 2006-10-16
  • 打赏
  • 举报
回复
string strCDT = DT.Year + "-" + DT.Month + "-" + DT.Day + " " + DT.Hour + ":" + DT.Second + ":" + DT.Minute;

改成这样看看呢。

string strCDT = DT.Year.ToString() + "-" + DT.MonthDT.Year.ToString() + "-" + DT.DayDT.Year.ToString() + " " + DT.HourDT.Year.ToString() + ":" + DT.SecondDT.Year.ToString() + ":" + DT.MinuteDT.Year.ToString();
狗豆腐 2006-10-16
  • 打赏
  • 举报
回复
谢谢了
早起晚睡 2006-10-16
  • 打赏
  • 举报
回复
那我就不知道怎么办了 呵呵呵 但是转换一下也不会 慢多少的
狗豆腐 2006-10-16
  • 打赏
  • 举报
回复
我是用dataset 对象直接调用dataset.WriteXml 方法
狗豆腐 2006-10-16
  • 打赏
  • 举报
回复
因为我一次会读很多个字段,所以我是先把所有要的数据先写到XML文件中,再从XML文件中读出我要的最大时间
早起晚睡 2006-10-16
  • 打赏
  • 举报
回复
当从数据库写到XML中的时候就转化成字符串就行了吗
狗豆腐 2006-10-16
  • 打赏
  • 举报
回复
是从数据库里直接写到XML文件中的
早起晚睡 2006-10-16
  • 打赏
  • 举报
回复
XML中的数据是哪里来的
早起晚睡 2006-10-16
  • 打赏
  • 举报
回复
select convert(varchar,getdate(),20)
得到的结果:
2006-10-16 18:26:05


select convert (datetime,convert(varchar,getdate(),20))
得到的结果:

2006-10-16 18:26:05.000
狗豆腐 2006-10-16
  • 打赏
  • 举报
回复
我忘记提醒了,我是从XML文件里面读出来的,不同用SQL语句来转换
有没有从XML文件读出时间之后把时间变回数据库时间的方法啊?
早起晚睡 2006-10-16
  • 打赏
  • 举报
回复
大哥你看看 SQL的联机帮助就都明白了
不带世纪数位 (yy) 带世纪数位 (yyyy)
标准
输入/输出**
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
1 101 美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英国/法国 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM
狗豆腐 2006-10-16
  • 打赏
  • 举报
回复
我看了一下,它讲的也不是很明白,还是请高人多指教.



狗豆腐 2006-10-16
  • 打赏
  • 举报
回复
如果去掉"111"就会得到如"10 16 2006 10:46AM"
如果加上"111"就会得到如"2006/10/16"
Eddie005 2006-10-16
  • 打赏
  • 举报
回复
111是一种格式代码,不一定是你需要的,lz最好是看看sql server帮助文档,查convert应该有介绍
狗豆腐 2006-10-16
  • 打赏
  • 举报
回复
我想精确到 "秒" 就可以了,你那111是什么意思啊?

Eddie005 2006-10-16
  • 打赏
  • 举报
回复
select convert(varchar,mydate,111) mydate,name from myTable
狗豆腐 2006-10-16
  • 打赏
  • 举报
回复
能不能把SQL语句写具体一点呢?例如我想从表 myTable 取出 mydate,name 两个字段,其中mydate 字段是datetime类型的.
Eddie005 2006-10-16
  • 打赏
  • 举报
回复
从数据库提取数据时把它转换成字符串(例如sql server: select convert(varchar,createdate,111) as createdate from table1)
那么,把它们写到xml的时候不会变格式

再返回到数据库中检索,也就不会有问题

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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