Datetime列跟T-SQL函数
上一篇 / 下一篇 2009-07-31 09:59:36 / 个人分类:SQL相关
在T-SQL中,datetime数据类型在列中存储date和time
数据类型 | 大小 | 范围 | 例子 |
Datetime | 8 bytes | >=Jan 1, 1753 00:00 | |
Smalldatetime | 4 bytes | Jan 1, 1900 00:00 to June 6, 2079 00:00 |
关于日期的提醒:
1. 如果未显示指定时间,默认为12:00 AM
2. 如果未显示指定日期,默认为Jan 1 1900
Select Dates
如何选出所有March 20,1991的订单
表中数据如下
Stored_id | Ord_num | date |
5023 | 136312 | Mar 21 1991 12:10AM |
5023 | 006313 | Mar 21 1991 12:20AM |
5023 | 313212 | Mar 21 1991 12:30AM |
8042 | 313131 | Mar 20 1991 12:40AM |
8042 | 313123 | Mar 20 1991 1:10AM |
8042 | 949652 | Mar 20 1991 1:10AM |
Solution 1:
Select stor_id , ord_num , date from sales where data = ‘3/20/1991’
这个方案不会得到任何的输出,因为查询条件’ data = ‘3/20/1991’’假定默认的时间是12:00AM
Solution 2 :
Select stor_id , ord_num , date from sales where date >= ‘3/20/1991’ AND date < ’3/21/1991’
这个方案会得到最后三行。
日期的默认格式如下:
1. 当使用分隔符的时候默认是mdy
2. 当未使用分隔符的时候默认是ymd
当使用分隔符时,我们可以使用SET FORMAT来规定每个日期部分的格式,参数可以是:
mdy , dmy , ymd , ydm , myd , dym
例子:
Set dateformat dmy
Select stor_id , ord_num , date from sales where date >= ‘20/3/1991’ AND date < ’21/3/1991’
Solution 3:
Select stor_id , ord_num , date from sales where datediff(dd , date , ‘3/20/1991’) = 0
我们可以指定datepart作为datename , datepart , datediff , dateadd的参数,从而仅仅获取日期值的一部分:
Datepart | Argument | Range | |||||||||||||||||||||||||||||||||||||||||||||||||||
Year | yy | 1753-9999 | |||||||||||||||||||||||||||||||||||||||||||||||||||
Quarter | qq | 1-4 | |||||||||||||||||||||||||||||||||||||||||||||||||||
Month | mm | 1-12 | |||||||||||||||||||||||||||||||||||||||||||||||||||
Dayofyear | dy | 1-366 | |||||||||||||||||||||||||||||||||||||||||||||||||||
Day | dd | 1-31 | |||||||||||||||||||||||||||||||||||||||||||||||||||
Week | wk | 1-53 | |||||||||||||||||||||||||||||||||||||||||||||||||||
Weekday |
TAG: 标题搜索日历
我的存档数据统计
清空Cookie - 联系我们 - 51Testing软件测试网 - 交流论坛 - 空间列表 - 站点存档 - 升级自己的空间
Powered by 51Testing
© 2003-2021
|