首页数据库sqldateadd?sql 中Dateadd()函数的用法

sqldateadd?sql 中Dateadd()函数的用法

编程之家 2023-11-01 315次浏览

亲爱的读者们,你是否对sqldateadd和sql 中Dateadd()函数的用法的关系感到好奇?在本文中,我将深入探讨它们之间的联系,让你对此有更深刻的理解。

sqldateadd?sql 中Dateadd()函数的用法

MSSQL的sql语句Dateadd()的问题

因为你最后的参数不对,不能是日期型的。

DateAdd() DateAdd()

返回包含一个日期的 Variant(Date),这一日期还加上了一段时间间隔。

表达式 DateAdd(timeinterval,number,date)

描述

interval必要。字符串表达式,是所要加上去的时间间隔。

sqldateadd?sql 中Dateadd()函数的用法

number必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。

date必要。Variant(Date)或表示日期的文字,这一日期还加上了时间间隔。

设置 interval参数,具有以下设定值:

设置描述

Year yy, yyyy年

quarter qq, q季

sqldateadd?sql 中Dateadd()函数的用法

Month mm, m月

dayofyear dy, y一年的日数

Day dd, d日

Week wk, ww一周的日数

Hour hh小时

minute mi, n分钟

second ss, s秒

millisecond ms毫秒

说明

可以使用 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参数的格式决定。

附:

number

是用来增加 datepart的值。数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为>date以后的日期),负值表示减(结果为>date以前的日期)。

如果指定一个不是整数的值,则将废弃此值的小数部分。例如,如果为 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)

MYSQL上应用实例:

select* from format where add_date>="dateadd('dd',-1,'2008-05-19')"

取出2008年5月18日以后的所有数据。

ACCESS上应用实例:

select* from format where add_date>=dateadd('d',1,#2008/05/19#)

取出2008年5月20日以后的所有数据。

oracle dateadd函数

dateadd函数不是SQL才有么???楼主是不是弄错了?

在oracle中有很多关于日期的函数,如:

1、add_months()用于从一个日期值增加或减少一些月份

date_value:=add_months(date_value,number_of_months)

例:

SQL> select add_months(sysdate,12)"Next Year" from dual;

Next Year

----------

13-11月-04

SQL> select add_months(sysdate,112)"Last Year" from dual;

Last Year

----------

13-3月-13

SQL>

2、current_date()返回当前会放时区中的当前日期

date_value:=current_date

SQL> column sessiontimezone for a15

SQL> select sessiontimezone,current_date from dual;

SESSIONTIMEZONE CURRENT_DA

-------------------------

+08:00 13-11月-03

SQL> alter session set time_zone='-11:00'

2/

会话已更改。

SQL> select sessiontimezone,current_timestamp from dual;

SESSIONTIMEZONE CURRENT_TIMESTAMP

---------------------------------------------------

-11:00 12-11月-03 04.59.13.668000下午-11:

00

SQL>

3、current_timestamp()以timestamp with time zone数据类型返回当前会放时区中的当前日期

timestamp_with_time_zone_value:=current_timestamp([timestamp_precision])

SQL> column sessiontimezone for a15

SQL> column current_timestamp format a36

SQL> select sessiontimezone,current_timestamp from dual;

SESSIONTIMEZONE CURRENT_TIMESTAMP

---------------------------------------------------

+08:00 13-11月-03 11.56.28.160000上午+08:

00

SQL> alter session set time_zone='-11:00'

2/

会话已更改。

SQL> select sessiontimezone,current_timestamp from dual;

SESSIONTIMEZONE CURRENT_TIMESTAMP

---------------------------------------------------

-11:00 12-11月-03 04.58.00.243000下午-11:

00

SQL>

4、dbtimezone()返回时区

varchar_value:=dbtimezone

SQL> select dbtimezone from dual;

DBTIME

------

-07:00

SQL>

5、extract()找出日期或间隔值的字段值

date_value:=extract(date_field from [datetime_value|interval_value])

SQL> select extract(month from sysdate)"This Month" from dual;

This Month

----------

11

SQL> select extract(year from add_months(sysdate,36))"3 Years Out" from dual;

3 Years Out

-----------

2006

SQL>

6、last_day()返回包含了日期参数的月份的最后一天的日期

date_value:=last_day(date_value)

SQL> select last_day(date'2000-02-01')"Leap Yr?" from dual;

Leap Yr?

----------

29-2月-00

SQL> select last_day(sysdate)"Last day of this month" from dual;

Last day o

----------

30-11月-03

SQL>

7、localtimestamp()返回会话中的日期和时间

timestamp_value:=localtimestamp

SQL> column localtimestamp format a28

SQL> select localtimestamp from dual;

LOCALTIMESTAMP

----------------------------

13-11月-03 12.09.15.433000

下午

SQL> select localtimestamp,current_timestamp from dual;

LOCALTIMESTAMP CURRENT_TIMESTAMP

----------------------------------------------------------------

13-11月-03 12.09.31.006000 13-11月-03 12.09.31.006000下午+08:

下午 00

SQL> alter session set time_zone='-11:00';

会话已更改。

SQL> select localtimestamp,to_char(sysdate,'DD-MM-YYYY HH:MI:SS AM')"SYSDATE" from dual;

LOCALTIMESTAMP SYSDATE

----------------------------------------------------

12-11月-03 05.11.31.259000 13-11-2003 12:11:31下午

下午

SQL>

8、months_between()判断两个日期之间的月份数量

number_value:=months_between(date_value,date_value)

SQL> select months_between(sysdate,date'1971-05-18') from dual;

MONTHS_BETWEEN(SYSDATE,DATE'1971-05-18')

----------------------------------------

389.855143

SQL> select months_between(sysdate,date'2001-01-01') from dual;

MONTHS_BETWEEN(SYSDATE,DATE'2001-01-01')

----------------------------------------

34.4035409

SQL>

9、next_day()给定一个日期值,返回由第二个参数指出的日子第一次出现在的日期值(应返回相应日子的名称字符串)

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)

请参见

好了,文章到此结束,希望可以帮助到大家。

温州网站推广,谁知道温州做过百度推广的公司有哪些 app订制,开发app需要多少钱企业app定制