Datetime列跟T-SQL函数

上一篇 / 下一篇  2009-07-31 09:59:36 / 个人分类:SQL相关

T-SQL中,datetime数据类型在列中存储datetime

数据类型

大小

范围

例子

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 201991的订单

表中数据如下

 

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:

 

评分:0

我来说两句