您的位置:首页 > 数据库

根据日期段查询的sql方法和程序方法

2011-07-19 11:48 447 查看
网上查了很多资料,终于总结了根据日期段查询的sql方法和程序方法
1. 在数据库中
select * from Income where
convert(varchar(10),AddTime,120)
between convert(datetime,'2011-7-18') and convert(datetime,'2011-7-19')

其中:convert(varchar(10),AddTime,120) 显示格式是:yyyy-MM-dd ,如:2011-7-18
用convert,你可以查看在线帮助,例如:
select convert(varchar(20),getdate(),120)
示:2011-7-18

下面是样式的参数:

-------------------------------------
不带世纪数位 (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* Hijri**** dd mon yyyy hh:mi:ss:mmmAM
- 131* Hijri**** dd/mm/yy hh:mi:ss:mmmAM
------------开始时间:-----------
convert(datetime,'2011-7-18') 传入的是日期字符串
-----------结束时间:-----------
convert(datetime,'2011-7-19')
2 在程序中
在web开发中日期控件取值一般都是字符串格式的“yyyy-MM-dd” 直接传入就可以
在程序中查询方法如下:
strWhere += string.Format(" and convert(varchar(10),AddTime,120) between convert(datetime,'{0}') and convert(datetime,'{1}')", strStatDate,strEndDate);
如果传入的值是 日期格式则使用下面的方法
strWhere += string.Format(" and convert(varchar(10),AddTime,120) between convert(datetime,'{0}') and convert(datetime,'{1}')", searchModel.StartTime.ToShortDateString(), searchModel.EndTime.ToShortDateString());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐