SQL Server中的时间函数有那些,最好举例说明?
3个回答
展开全部
SQL数据库中有各种不同的函数,下面为您介绍SQL中的时间函数,如果您是才接触SQL的新手,不妨一看,相信会对您有所帮助。
--基于时间SQL函数--
getdate()
--返回当前系统日期和时间。
select
getdate()
DateAdd
--在向指定日期加上一段时间的基础上,返回新的
datetime
值。
DATEADD
(
datepart
,
number,
date
)
--例:向当天的时间增加5天
select
dateadd(dd,5,getdate())
datediff
--返回跨两个指定日期的日期和时间边界数。
DATEDIFF
(
datepart
,
startdate
,
enddate
)
--例:返回2005-01-01与当天有多少天
select
datediff(dd,'2005-01-01',getdate())
--把时间字段的数据变为年月
Select
Convert(Varchar(6),GetDate(),112)
--字符串变时间
select
convert(datetime,left(@t,len(@t)-4)+':'+left(right(@t,4),2)+':'+right(@t,2))
ISDATE
--确定输入表达式是否为有效的日期
DATEPART
--返回代表指定日期的指定日期部分的整数
DATEPART
(
datepart
,
date
)
--如:返回当前是几月
select
datepart(mm,getdate())
DATENAME
--返回代表指定日期的指定日期部分的字符串
--datepart
,datename的区别:前者返回是整数,后者返回是字符串。
--基于时间SQL函数--
getdate()
--返回当前系统日期和时间。
select
getdate()
DateAdd
--在向指定日期加上一段时间的基础上,返回新的
datetime
值。
DATEADD
(
datepart
,
number,
date
)
--例:向当天的时间增加5天
select
dateadd(dd,5,getdate())
datediff
--返回跨两个指定日期的日期和时间边界数。
DATEDIFF
(
datepart
,
startdate
,
enddate
)
--例:返回2005-01-01与当天有多少天
select
datediff(dd,'2005-01-01',getdate())
--把时间字段的数据变为年月
Select
Convert(Varchar(6),GetDate(),112)
--字符串变时间
select
convert(datetime,left(@t,len(@t)-4)+':'+left(right(@t,4),2)+':'+right(@t,2))
ISDATE
--确定输入表达式是否为有效的日期
DATEPART
--返回代表指定日期的指定日期部分的整数
DATEPART
(
datepart
,
date
)
--如:返回当前是几月
select
datepart(mm,getdate())
DATENAME
--返回代表指定日期的指定日期部分的字符串
--datepart
,datename的区别:前者返回是整数,后者返回是字符串。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下面是时间经典的SQL查询:
1.显示本月第一天
SELECT
DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select
convert(datetime,convert(varchar(8),getdate(),
120)+'01',120)
2.显示本月最后一天
select
dateadd(day,-1,convert(datetime,convert
(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
SELECT
dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))
3.上个月的最后一天
SELECT
dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))
4.本月的第一个星期一i
select
DATEADD(wk,DATEDIFF(wk,0,
dateadd(dd,6-datepart(
day,getdate()),getdate())),0)
5.本年的第一天
SELECT
DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
6.本年的最后一天
SELECT
dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))
7.去年的最后一天
SELECT
dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))
8.本季度的第一天
SELECT
DATEADD(qq,DATEDIFF(qq,0,getdate()),0)
9.本周的星期一
SELECT
DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
10.查询本月的记录
select
*
from
tableName
where
DATEPART(mm,
theDate)
=DATEPART(mm,
GETDATE())
and
DATEPART(yy,
theDate)
=
DATEPART(yy,
GETDATE())
11.查询本周的记录
select
*
from
tableName
where
DATEPART(wk,
theDate)
=
DATEPART
(wk,
GETDATE())
and
DATEPART(yy,
theDate)
=
DATEPART(yy,
GETDATE())
12查询本季的记录
注:其中:GETDATE()是获得系统时间的函数。
select
*
from
tableName
where
DATEPART(qq,
theDate)
=
DATEPART
(qq,
GETDATE())
and
DATEPART(yy,
theDate)
=
DATEPART(yy,
GETDATE())
13.获取当月总天数:
select
DATEDIFF(dd,getdate(),DATEADD
(mm,
1,
getdate()))
select
datediff(day,
dateadd(mm,
datediff(mm,'',getdate()),
''),
dateadd(mm,
datediff(mm,'',getdate()),
'1900-02-01'))
14.获取当前为星期几
DATENAME(weekday,
getdate())
1.显示本月第一天
SELECT
DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select
convert(datetime,convert(varchar(8),getdate(),
120)+'01',120)
2.显示本月最后一天
select
dateadd(day,-1,convert(datetime,convert
(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
SELECT
dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))
3.上个月的最后一天
SELECT
dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))
4.本月的第一个星期一i
select
DATEADD(wk,DATEDIFF(wk,0,
dateadd(dd,6-datepart(
day,getdate()),getdate())),0)
5.本年的第一天
SELECT
DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
6.本年的最后一天
SELECT
dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))
7.去年的最后一天
SELECT
dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))
8.本季度的第一天
SELECT
DATEADD(qq,DATEDIFF(qq,0,getdate()),0)
9.本周的星期一
SELECT
DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
10.查询本月的记录
select
*
from
tableName
where
DATEPART(mm,
theDate)
=DATEPART(mm,
GETDATE())
and
DATEPART(yy,
theDate)
=
DATEPART(yy,
GETDATE())
11.查询本周的记录
select
*
from
tableName
where
DATEPART(wk,
theDate)
=
DATEPART
(wk,
GETDATE())
and
DATEPART(yy,
theDate)
=
DATEPART(yy,
GETDATE())
12查询本季的记录
注:其中:GETDATE()是获得系统时间的函数。
select
*
from
tableName
where
DATEPART(qq,
theDate)
=
DATEPART
(qq,
GETDATE())
and
DATEPART(yy,
theDate)
=
DATEPART(yy,
GETDATE())
13.获取当月总天数:
select
DATEDIFF(dd,getdate(),DATEADD
(mm,
1,
getdate()))
select
datediff(day,
dateadd(mm,
datediff(mm,'',getdate()),
''),
dateadd(mm,
datediff(mm,'',getdate()),
'1900-02-01'))
14.获取当前为星期几
DATENAME(weekday,
getdate())
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比较常用的时间函数有DateAdd,DateDiff,DateName,DatePart,Day,Getdate,Month,Year,GetUTCDate这几个函数。
以下依次说明,如需更详细说明请参考SQL帮助文档:
1.
DateAdd函数
在向指定日期加上一段时间的基础上,返回新的
datetime
值。
语法
DATEADD
(
datepart
,
number,
date
)
示例
此示例打印出
pubs
数据库中标题的时间结构的列表。此时间结构表示当前发布日期加上
21
天。
SELECT
DATEADD(day,
21,
pubdate)
AS
timeframe
FROM
titles
2.DateDiff函数
返回跨两个指定日期的日期和时间边界数。
语法
DATEDIFF
(
datepart
,
startdate
,
enddate
)
示例
此示例确定在
pubs
数据库中标题发布日期和当前日期间的天数。
SELECT
DATEDIFF(day,
pubdate,
getdate())
AS
no_of_days
FROM
titles
3.DateName函数
返回代表指定日期的指定日期部分的字符串。
语法
DATENAME
(
datepart
,
date
)
示例
此示例从
GETDATE
返回的日期中提取月份名。
SELECT
DATENAME(month,
getdate())
AS
'Month
Name'
4.DatePart函数
返回代表指定日期的指定日期部分的整数。
语法
DATEPART
(
datepart
,
date
)
示例
此示例显示
GETDATE
及
DATEPART
的输出。
SELECT
DATEPART(month,
GETDATE())
AS
'Month
Number'
5.Day函数
返回代表指定日期的天的日期部分的整数。
语法
DAY
(
date
)
示例
此示例返回从日期
03/12/1998
后的天数。
SELECT
DAY('03/12/1998')
AS
'Day
Number'
6.GetDate函数
按
datetime
值的
Microsoft®
SQL
Server™
标准内部格式返回当前系统日期和时间。
语法
GETDATE
(
)
示例
下面的示例得出当前系统日期和时间:
SELECT
GETDATE()
7.Month函数
返回代表指定日期月份的整数。
语法
MONTH
(
date
)
示例
下面的示例从日期
03/12/1998
中返回月份数。
SELECT
"Month
Number"
=
MONTH('03/12/1998')
8.Year函数
返回表示指定日期中的年份的整数。
语法
YEAR
(
date
)
示例
下例从日期
03/12/1998
中返回年份数。
SELECT
"Year
Number"
=
YEAR('03/12/1998')
9.GetUTCDate函数
返回表示当前
UTC
时间(世界时间坐标或格林尼治标准时间)的
datetime
值。当前的
UTC
时间得自当前的本地时间和运行
SQL
Server
的计算机操作系统中的时区设置。
语法
GETUTCDATE()
示例
下例从日期
03/12/1998
中返回年份数。
SELECT
GETUTCDATE()
以下依次说明,如需更详细说明请参考SQL帮助文档:
1.
DateAdd函数
在向指定日期加上一段时间的基础上,返回新的
datetime
值。
语法
DATEADD
(
datepart
,
number,
date
)
示例
此示例打印出
pubs
数据库中标题的时间结构的列表。此时间结构表示当前发布日期加上
21
天。
SELECT
DATEADD(day,
21,
pubdate)
AS
timeframe
FROM
titles
2.DateDiff函数
返回跨两个指定日期的日期和时间边界数。
语法
DATEDIFF
(
datepart
,
startdate
,
enddate
)
示例
此示例确定在
pubs
数据库中标题发布日期和当前日期间的天数。
SELECT
DATEDIFF(day,
pubdate,
getdate())
AS
no_of_days
FROM
titles
3.DateName函数
返回代表指定日期的指定日期部分的字符串。
语法
DATENAME
(
datepart
,
date
)
示例
此示例从
GETDATE
返回的日期中提取月份名。
SELECT
DATENAME(month,
getdate())
AS
'Month
Name'
4.DatePart函数
返回代表指定日期的指定日期部分的整数。
语法
DATEPART
(
datepart
,
date
)
示例
此示例显示
GETDATE
及
DATEPART
的输出。
SELECT
DATEPART(month,
GETDATE())
AS
'Month
Number'
5.Day函数
返回代表指定日期的天的日期部分的整数。
语法
DAY
(
date
)
示例
此示例返回从日期
03/12/1998
后的天数。
SELECT
DAY('03/12/1998')
AS
'Day
Number'
6.GetDate函数
按
datetime
值的
Microsoft®
SQL
Server™
标准内部格式返回当前系统日期和时间。
语法
GETDATE
(
)
示例
下面的示例得出当前系统日期和时间:
SELECT
GETDATE()
7.Month函数
返回代表指定日期月份的整数。
语法
MONTH
(
date
)
示例
下面的示例从日期
03/12/1998
中返回月份数。
SELECT
"Month
Number"
=
MONTH('03/12/1998')
8.Year函数
返回表示指定日期中的年份的整数。
语法
YEAR
(
date
)
示例
下例从日期
03/12/1998
中返回年份数。
SELECT
"Year
Number"
=
YEAR('03/12/1998')
9.GetUTCDate函数
返回表示当前
UTC
时间(世界时间坐标或格林尼治标准时间)的
datetime
值。当前的
UTC
时间得自当前的本地时间和运行
SQL
Server
的计算机操作系统中的时区设置。
语法
GETUTCDATE()
示例
下例从日期
03/12/1998
中返回年份数。
SELECT
GETUTCDATE()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询