首页 > 代码库 > SQL日期和时间函数
SQL日期和时间函数
使用这些函数可以计算日期和时间值。例如,假设您希望了解通常在一周中哪一天的销售量最高。使用 DAYOFWEEK 函数,您可以创建一个公式来标识每天的销售订单数量。再比如,假设您希望比较在过去的一年中的季度收益。使用 QUARTER 函数,您可以按季度划分整年的销售量。
日期和时间函数可使用以下数据类型:String、Integer 和 DateTime。其默认格式由本地计算机的区域设置决定。
datepart参数
datepart | 缩写 |
year | yy, yyyy |
quarter | qq, q |
month | mm, m |
dayofyear | dy, y |
day | dd, d |
week | wk, ww |
hour | hh |
minute | mi, n |
second | ss, s |
millisecond | ms |
microsecond | mcs |
nanosecond | ns |
用来获取日期和时间部分的函数
函数 | 语法 | 返回值 | 返回数据类型 | 确定性 |
DATENAME | DATENAME (datepart , date ) | 返回表示指定日期的指定datepart 的字符串。 | nvarchar | 不具有确定性 |
DATEPART | DATEPART (datepart , date ) | 返回表示指定 date 的指定datepart 的整数。 | int | 不具有确定性 |
DAY | DAY ( date ) | 返回表示指定 date 的“日”部分的整数。 | int | 具有确定性 |
MONTH | MONTH ( date ) | 返回表示指定 date 的“月”部分的整数。 | int | 具有确定性 |
YEAR | YEAR ( date ) | 返回表示指定 date 的“年”部分的整数。 | int | 具有确定性 |
详解:
一.DATENAME ( datepart , date )
返回表示指定日期的指定 datepart的字符串。Nvarchar类型
例:
SELECT DATENAME(year,getdate())--年
,DATENAME(month,getdate())--月
,DATENAME(day,getdate())--日
,DATENAME(dayofyear,getdate())--一年中的第几天
,DATENAME(quarter,getdate())--季节
,DATENAME(week,getdate())--星期
,DATENAME(weekday,getdate())--星期几
,DATENAME(hour,getdate())--小时
,DATENAME(minute,getdate())--分钟
,DATENAME(second,getdate());--秒钟
select getdate()--获取当前时间作为参照
备注
DATENAME 可用于选择列表 WHERE、HAVING、GROUP BY 和 ORDER BY 子句中。
二.DATEPART
DATEPART ( datepart , date )
返回表示指定 date 的指定 datepart的整数。Int类型
例:
SELECT DATEPART(year,getdate())--年
,DATEPART(month,getdate())--月
,DATEPART(day,getdate())--日
,DATEPART(dayofyear,getdate())--一年中的第几天
,DATEPART(quarter,getdate())--季节
,DATEPART(week,getdate())--星期
,DATEPART(weekday,getdate())--星期几 返回 1
,DATEPART(hour,getdate())--小时
,DATEPART(minute,getdate())--分钟
,DATEPART(second,getdate());--秒钟
注:datename与datepart意义相似但返回值不同,前者为字符串类型,后者为整形。如:datename(week,getdate()),返回值是星期一,星期二。。。而后者返回值为1,2,3,4。。。且礼拜天返回1
三.直接获取(只限于年月日)
SELECT YEAR(getdate())
, MONTH(getdate())
, DAY(getdate());
用来获取日期和时间差的函数
函数 | 语法 | 返回值 | 返回数据类型 | 确定性 | |||||||
DATEDIFF | DATEDIFF ( datepart ,startdate , enddate ) | 返回两个指定日期之间所跨的日期或时间 datepart 边界的数目。 | int | 具有确定性 | |||||||
|
用来修改日期和时间值的函数
函数 | 语法 | 返回值 | 返回数据类型 | 确定性 | |||||||||||
DATEADD
| DATEADD (datepart ,number , date ) | 通过将一个时间间隔与指定date 的指定 datepart 相加,返回一个新的 datetime值。 | date 参数的数据类型。 | 具有确定性 | |||||||||||
说明 | |||||||||||||||
|
SQL日期和时间函数