dateadd?dateadd函数的用法是什么
你是否对于dateadd和dateadd函数的用法是什么感到困惑?别担心,今天小编将为您揭开这个谜团,让我们一同探索吧!
dateadd函数的用法是什么
用 DateAdd函数可实现日期、时间的加减
用法:DateAdd(nStr, S, nTime)
nTime:表示基准时间
S:表示加上的时间、日期数值,负数表示减去
nStr:表示要加减的项目。共6个(年:y月:m日:d时:h分:n秒:s)
例子:在窗体添加控件Command1 Label1 Label2查看效果
Private Sub Command1_Click()
Label1.Caption= Now'获得当前时间
'加上 3秒
S= 3: nStr="s"
Label2.Caption= DateAdd(nStr, S, Label1.Caption)
''减去 4分
' S= 4: nStr="n"
' Label2.Caption= DateAdd(nStr, S, Label1.Caption)
''加上 12时
' S= 12: nStr="h"
' Label2.Caption= DateAdd(nStr, S, Label1.Caption)
''加上 13天
' S= 13: nStr="s"
' Label2.Caption= DateAdd(nStr, S, Label1.Caption)
''加上 5月
' S= 5: nStr="m"
' Label2.Caption= DateAdd(nStr, S, Label1.Caption)
''加上 3年
' S= 3: nStr="y"
' Label2.Caption= DateAdd(nStr, S, Label1.Caption)
End Sub
dateadd语法
DATEADD(datepart,number,date)
date参数是合法的日期表达式。number
是想要添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数
例:上月的最后一天
SELECT DATEADD(ms,-3,DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0))
注:用本月的第一天减去3毫秒,即得出上个月的最有一天.SQL SERVER DATETIME类型的时间精确到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)
请参见
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()给定一个日期值,返回由第二个参数指出的日子第一次出现在的日期值(应返回相应日子的名称字符串)
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!