A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谭威 中级黑马   /  2012-6-5 16:25  /  2543 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

‘ 2012-06-05’ 这种类型的日期怎么和      ‘2012-6-5’这种类型的日期相比较。。遇到一个问题。从日历控件上取到的日期全是‘ 2012-6-5’  但是要拿到数据库中和自己手动插入的值‘2012-06-05’比较是不同的
该怎么转化呢

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

8 个回复

正序浏览
刚刚在控制台输出DateTime,结果如下。(仅供参考)
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡


DateTime datetime = DateTime.Now;

今天是2012年6月7日
datetime.ToString():           2012/6/7 12:23:21
datetime.ToString("D"):        2012年6月7日
datetime.ToString("d"):        2012/6/7
datetime.ToString("F"):        2012年6月7日 12:23:21
datetime.ToString("f"):        2012年6月7日 12:23
datetime.ToString("G"):        2012/6/7 12:23:21
datetime.ToString("g"):        2012/6/7 12:23
datetime.ToString("M"):        6月7日
datetime.ToString("m"):        6月7日
datetime.ToString("o"):        2012-06-07T12:23:21.7711369+08:00
datetime.ToString("r"):        Thu, 07 Jun 2012 12:23:21 GMT
datetime.ToString("s"):        2012-06-07T12:23:21
datetime.ToString("T"):        12:23:21
datetime.ToString("t"):        12:23
datetime.ToString("U"):        2012年6月7日 4:23:21
datetime.ToString("u"):        2012-06-07 12:23:21Z
datetime.ToString("y"):        2012年6月
datetime.ToString("yy"):       12
datetime.ToString("yyy"):      2012
datetime.ToString("yyyy"):     2012
datetime.ToString("M"):        6月7日
datetime.ToString("MM"):       06
datetime.ToString("MMM"):      六月
datetime.ToString("MMMM"):     六月
datetime.ToString("d"):        2012/6/7
datetime.ToString("dd"):       07
datetime.ToString("ddd"):      周四
datetime.ToString("dddd"):     星期四
datetime.ToString("hh"):       12
datetime.ToString("HH"):       12
datetime.ToString("m"):        6月7日
datetime.ToString("mm"):       23
datetime.ToString("s"):        2012-06-07T12:23:21
datetime.ToString("ss"):       21
datetime.ToString("y-MM"):     12-06
datetime.ToString("yy-MM"):    12-06
datetime.ToString("dddd"):     星期四
datetime.ToString("MMMM"):     六月
datetime.ToString("dddd, MMMM dd yyyy"):       星期四, 六月 07 2012
datetime.ToString("ddd, MMM d "'"yy"): 周四, 六月 7 '12
datetime.ToString("dddd, MMMM dd"):    星期四, 六月 07
datetime.ToString("M/yy"):     6/12
datetime.ToString("dd-MM-yy"): 07-06-12

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
非常感谢你们的回答。不过我自己找到解决方案了  cast(convert(varchar,LeaveDate,111)as datetime) 这个函数可以搞定

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
楼主可以把时间转换成标准的    textBox1.Text = DateTime.Now.ToString("yyyy_MM_dd");
用tostring格式化输出

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
朱亮辉 发表于 2012-6-5 22:01
楼主的问题你都不明白!

不好意思!!!!
回复 使用道具 举报
可以对控件的数据处理,转换成标准形式,再去比较不就行了。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
何拴绪 发表于 2012-6-5 17:44
可以将日期转化为毫秒数比较。

楼主的问题你都不明白!
回复 使用道具 举报
可以将日期转化为毫秒数比较。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
解决方案
1、控件可以更改时间格式的,可以改为2012-06-05这样的数据的进行比较
2、C#时间格式化将数据库中的值转换为2010-6-5进行比较,附代码:
DateTime d = new DateTime(2012,06,05);
Console.WriteLine( d.ToString("yyyy-M-d"));
3、将数据库中的值转换为2010-6-5进行比较
CAST(DatePart(year,'2012-06-05 22:56:32') as VARCHAR)+'-'+CAST(DatePart(month,'2012-06-05 22:56:32')as VARCHAR)+'-'+CAST(DatePart(day,'2012-06-05 22:56:32')as VARCHAR)

可以直接在SQL Server中运行一下这句SQL 语句看看效果
SELECT CAST(DatePart(year,'2012-06-05 22:56:32') as VARCHAR)+'-'+CAST(DatePart(month,'2012-06-05 22:56:32')as VARCHAR)+'-'+CAST(DatePart(day,'2012-06-05 22:56:32')as VARCHAR)

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马