dateadd函数怎么用,如何用Sql语句获取当前时间,并且在当前时间的基础上减去3天的时间
dateadd函数怎么用,如何用Sql语句获取当前时间,并且在当前时间的基础上减去3天的时间详细介绍
本文目录一览: sql 中Dateadd()函数的用法
DATEADD
在向指定日期加上一段时间的基础上,返回新的 datetime 值。
语法
DATEADD ( datepart , number, date )
参数
datepart
是规定应向日期的哪一部分返回新值的参数。下表列出了 Microsoft? SQL Server? 识别的日期部分和缩写。
日期部分 缩写
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
number
是用来增加 datepart 的值。如果指定一个不是整数的值,则将废弃此值的小数部分。例如,如果为 datepart 指定 day,为 number 指定 1.75,则 date 将增加 1。
date
是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。有关指定日期的更多信息,请参见 datetime 和 smalldatetime。
如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。
返回类型
返回 datetime,但如果 date 参数是 smalldatetime,返回 smalldatetime。
示例
此示例打印出 pubs 数据库中标题的时间结构的列表。此时间结构表示当前发布日期加上 21 天。
USE pubs
GO
SELECT DATEADD(day, 21, pubdate) AS timeframe
FROM titles
GO
下面是结果集:
timeframe
---------------------------
Jul 3 1991 12:00AM
Jun 30 1991 12:00AM
Jul 21 1991 12:00AM
Jul 13 1991 12:00AM
Jun 30 1991 12:00AM
Jul 9 1991 12:00AM
Mar 14 1997 5:09PM
Jul 21 1991 12:00AM
Jul 3 1994 12:00AM
Mar 14 1997 5:09PM
Nov 11 1991 12:00AM
Jul 6 1991 12:00AM
Oct 26 1991 12:00AM
Jul 3 1991 12:00AM
Jul 3 1991 12:00AM
Nov 11 1991 12:00AM
Jul 3 1991 12:00AM
Jul 3 1991 12:00AM
(18 row(s) affected)
请参见
SQL时间计算,DATEADD函数,该怎么解决
DATEADD() 函数在日期中添加或减去指定的时间间隔。
用法:DATEADD(datepart,number,date)
date 参数是合法的日期表达式。
number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
datepart 参数可以是下列的值:
datepart 缩写
年
yy, yyyy
季度
qq, q
月
mm, m
年中的日
dy, y
日
dd, d
周
wk, ww
星期 dw, w
小时
hh
分钟
mi, n
秒
ss, s
毫秒
ms
微妙
mcs
纳秒
ns
例子1:
SELECT DATEADD(MONTH,2,'2010-10-06')
传回的结果是2010-12-06 00:00:00.000
例子2:在当前日期减去一天
select GETDATE() as '当前日期',DATEADD(day,-1,getdate()) as '新日期'
例子3:当前日期减去一年
select GETDATE() as '当前日期',DATEADD(YEAR,-1,getdate()) as '新日期'
如何用Sql语句获取当前时间,并且在当前时间的基础上减去3天的时间
datediff(day,时间字段,getdate()) =3
一、DateAdd()方法说明SQL Server提供了日期函数DateAdd用于获得某日期指定间隔后的日期。1. 定义和用法DATEADD() 函数在日期中添加或减去指定的时间间隔。2. 语法DATEADD(datepart,number,date)date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。datepart 参数可以是下列的值:datepart缩写年 yy, yyyy 季度 qq, q 月 mm, m 年中的日 dy, y 日 dd, d 周 wk, ww 星期 dw, w 小时 hh 分钟 mi, n 秒 ss, s 毫秒 ms 微妙 mcs 纳秒 ns 实例假设我们有下面这个 "Orders" 表:OrderIdProductNameOrderDate'Computer' 2016-12-29 16:25:46.635 现在,我们希望向 "OrderDate" 添加 2 天,这样就可以找到付款日期。我们使用如下 SELECT 语句:SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDateFROM Orders结果:OrderIdOrderPayDate2016-12-31 16:25:46.635 二、SQL代码PRINT DateAdd(day, -3, GetDate())三、运行测试05 20 2017 3:10PM
sql中日期函数的用法
DATEADD
在向指定日期加上一段时间的基础上,返回新的 datetime 值。
语法
DATEADD ( datepart , number, date )
DATEDIFF
返回跨两个指定日期的日期和时间边界数。
语法
DATEDIFF ( datepart , startdate , enddate )
GETDATE
按 datetime 值的 Microsoft? SQL Server? 标准内部格式返回当前系统日期和时间。
语法
GETDATE ( )
DATENAME
返回代表指定日期的指定日期部分的字符串。
语法
DATENAME ( datepart , date )
1.DateAdd ( I , N , D )
将一个日期加上一段期间后的日期。 I :设定一个日期( Date )所加上的一段期间的单位。譬如 interval="d" 表示 N的单位为日。 I的设定值如下:
yyyy Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
n Minute 分
s Second 秒
N :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 >date 以后的日期),负值表示减(结果为 >date 以前的日期)。
D :待加减的日期。
例子: DateAdd ( "m" , 1 , "31-Jan-98")
结果: 28-Feb-98
说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。
例子: DateAdd ( "d" , 20 , "30-Jan-99")
结果: 1999/2/9
说明:将一个日期 30-Jan-99 加上 20 天后的日期。
2.Day( 日期的字符串或表达式 )
传回日期的「日」部份。
例子: Day(" 12/1/1999 ")
结果: 1
3.DateDiff (I , D1 , D2[,FW[,FY]])
计算两个日期之间的期间。
I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如:
yyyy > Year 年
q Quarter 季
m Month 月
d Day 日
w Weekday 星期
h Hour 时
n Minute 分
s Second 秒
D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。
FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下:
0 使用 >API 的设定值。
1 星期天
2 星期一
3 星期二
4 星期三
5 星期四
6 星期五
7 星期六
FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:
0 使用 >API 的设定值。
1 一月一日那一周为一年的第一周
2 至少包括四天的第一周为一年的第一周
3 包括七天的第一周为一年的第一周
例子: DateDiff ("d","25-Mar-99 ","30-Jun-99 ")
结果: 97
说明:显示两个日期之间的期间为 97 天
想查询2007年2月9日的付款流水有单笔交易出现多张小票号的情况的小票号
这个要看一下你的表结构是什么样的啊?
如何使用 dateadd函数从日期减去一年
返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。
语法
DateAdd(interval, number, date)
DateAdd 函数语法中有下列命名参数:
部分
描述
interval
必要。字符串表达式,是所要加上去的时间间隔。
number
必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
date
必要。Variant (Date)
或表示日期的文字,这一日期还加上了时间间隔。
设置
interval 参数具有以下设定值:
设置
描述
yyyy
年
q
季
m
月
y
一年的日数
d
日
w
一周的日数
ww
周
h
时
n
分钟
s
秒
说明
可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。例如,可以用 DateAdd
来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。
为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日” (”d”) 或“一周的日数”
(”w”)。
DateAdd 函数将不返回有效日期。在以下实例中将 1 月31 日加上一个月:
DateAdd(m, 1, 31-Jan-95)
上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果
date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。
如果计算的日期超前 100 年(减去的年度超过 date 中的年份),就会导致错误发生。
如果 number 不是一个 Long 值,则在计算时取最接近的整数值来计算。
注意 DateAdd 返回值的格式由 Control
Panel设置决定,而不是由传递到date 参数的格式决定。
SQL Server中的时间函数有那些,最好举例说明?
比较常用的时间函数有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.显示本月第一天
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())
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函数计算半年后的日期
SELECT
GETDATE() AS [今天],
DATEADD(mm, 3, GETDATE() ) AS [3月后],
DATEADD(mm, 6, GETDATE() ) AS [6月后]
今天 3月后 6月后
----------------------- ----------------------- -----------------------
2011-07-16 21:26:11.310 2011-10-16 21:26:11.310 2012-01-16 21:26:11.310
(1 行受影响)
SELECT
GETDATE() AS [今天],
DATEADD(mm, 3, GETDATE() ) AS [3月后],
DATEADD(mm, 6, GETDATE() ) AS [6月后]
今天 3月后 6月后
----------------------- ----------------------- -----------------------
2011-07-16 21:26:11.310 2011-10-16 21:26:11.310 2012-01-16 21:26:11.310
(1 行受影响)
select cast(cast('2011-09-01' as datetime)-getdate() as int)
楼主好,SQL中算日期有函数,直接可以算的。使用DATEADD函数即可达到目的。如例子中你说的要存三个月,那么获得三个月后的日期的写法为:dateadd(month,3,'2011-07-15')。同样,这个函数也可以算天,小时,周,季度,年,毫秒等等,此函数是算距离一个时间多少时间后是什么时间,参数第一个是要计算的时间类型,第二个为间隔的数量(为正即向后,为负则向前推算),第三个为计算的开始时间
在SQL Server中,在当天的基础上加上1个月时间,这是用哪个函数?
SELECT '现在' AS [日期], GETDATE() AS [数据]UNION ALLSELECT '下一秒' AS [日期], DATEADD(ss, 1, GETDATE() ) AS [数据]UNION ALLSELECT '下一分' AS [日期], DATEADD(mi, 1, GETDATE() ) AS [数据]UNION ALLSELECT '下一小时' AS [日期], DATEADD(hh, 1, GETDATE() ) AS [数据]UNION ALLSELECT '明天' AS [日期], DATEADD(dd, 1, GETDATE() ) AS [数据]UNION ALLSELECT '下周' AS [日期], DATEADD(ww, 1, GETDATE() ) AS [数据]UNION ALLSELECT '下月' AS [日期], DATEADD(mm, 1, GETDATE() ) AS [数据]UNION ALLSELECT '下季度' AS [日期], DATEADD(qq, 1, GETDATE() ) AS [数据]UNION ALLSELECT '明年' AS [日期], DATEADD(yy, 1, GETDATE() ) AS [数据]go日期 数据-------- -----------------------现在 2010-08-31 17:20:57.950下一秒 2010-08-31 17:20:58.950下一分 2010-08-31 17:21:57.950下一小时 2010-08-31 18:20:57.950明天 2010-09-01 17:20:57.950下周 2010-09-07 17:20:57.950下月 2010-09-30 17:20:57.950下季度 2010-11-30 17:20:57.950明年 2011-08-31 17:20:57.950(9 行受影响)
SELECT '下月' AS [日期], DATEADD(mm, 1, GETDATE() ) AS [数据]
dateadd(datepart, number, date) , datapart指定对那一部分加,number知道加多少,date指定在谁的基础上加。getdate()表示当前时间。
declare @paraDate datetime
set @paraDate='2014.3.1'
declare @resultDate datetime--这个就是你要的值,dateadd就是你要的函数
set @resultDate=dateadd(month,1,@paraDate)
select dateadd(month,1,getdate())
DATEADD() 函数是在日期中添加或减去指定的时间间隔。
现在,我们希望向 "OrderDate" 添加 2 天,可以使用:
SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate FROM Orders
看到了嘛!!由12月29号变成12月31号,增加了2天。
针对你这个问题就可以使用:
select dateadd(month,1,getdate()) from 表名,这样就可以在当天的基础上加1个月的时间了!
一个时间加上一个时间的函数
DATEADD() 函数是在日期中添加或减去指定的时间间隔。
现在,我们希望向 "OrderDate" 添加 2 天,可以使用:
SELECT OrderId,DATEADD(day,2,OrderDate) AS OrderPayDate FROM Orders
看到了嘛!!由12月29号变成12月31号,增加了2天。
针对你这个问题就可以使用:
select dateadd(month,1,getdate()) from 表名,这样就可以在当天的基础上加1个月的时间了!
如果是电子表格
则假设10:20:15写在A1单元格,要加的秒数写在B1单元格,
则计算单元格写入公式
=TIME(HOUR(A1),MINUTE(A1),SECOND(A1)+B1)
或
=A1+B1/86400
再设置单元格格式为时间格式