Sql Server中的日期与时间函数
1. 当前系统日期、时间
select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
3. datediff 返回跨两个指定日期的日期和时间边界数。
select datediff(day,'2004-09-01','2004-09-18') --返回:17
4. datepart 返回代表指定日期的指定日期部分的整数。
SELECT DATEPART(month, '2004-10-15') --返回10
5. datename 返回代表指定日期的指定日期部分的字符串
SELECT datename(weekday, '2004-10-15') --返回:星期五
6. day(), month(),year() --可以与datepart对照一下
select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)
select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,'2004-10-15')
,今天是周几=datename(weekday,'2004-10-15')
函数参数/功能
GetDate( ) 返回系统目前的日期与时间
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值date2-date1 DateAdd
以interval指定的方式,加上number之后的日期
(interval,number,date)
DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称
参数interval的设定值如下:
值缩写(Sql Server) (access 和asp) 说明
Year Yy yyyy 年1753 ~ 9999
Quarter QQ q 季1 ~ 4
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日1-7
Week Wk ww 周,一年中的第几周0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒0 ~ 59
Millisecond Ms - 毫秒0 ~ 999
access和asp中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似
举例:
1.GetDate() 用于sql server :select GetDate()
2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为514592 秒
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为5 天
3.DatePart('w','2005-7-25 22:56:32')返回值为2 即星期一(周日为1,周六为7)
DatePart('d','2005-7-25 22:56:32')返回值为25即25号
DatePart('y','2005-7-25 22:56:32')返回值为206即这一年中第206天
DatePart('yyyy','2005-7-25 22:56:32')返回值为2005即2005年
Sql Server中的日期与时间函数:
1. 当前系统日期、时间
select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值:
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
3. datediff 返回跨两个指定日期的日期和时间边界数:
select datediff(day,'2004-09-01','2004-09-18') --返回:17
4. datepart 返回代表指定日期的指定日期部分的整数:
SELECT DATEPART(month, '2004-10-15') --返回10
5. datename 返回代表指定日期的指定日期部分的字符串:
SELECT datename(weekday, '2004-10-15') --返回:星期五
6. day(), month(),year() --可以与datepart对照一下:
select 当前日期=convert(varchar(10),getdate(),120)
,当前时间=convert(varchar(8),getdate(),114)
select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,'2004-10-15')
,今天是周几=datename(weekday,'2004-10-15')
函数参数/功能
GetDate( ) 返回系统目前的日期与时间
DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值date2-date1
DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值
DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称
参数interval的设定值如下:
值缩写(Sql Server)(Access 和ASP) 说明
Year Yy yyyy 年1753 ~ 9999
Quarter Qq q 季1 ~ 4
Month Mm m 月1 ~ 12
Day of year Dy y 一年的日数,一年中的第几日1-366
Day Dd d 日,1-31
Weekday Dw w 一周的日数,一周中的第几日1-7
Week Wk ww 周,一年中的第几周0 ~ 51
Hour Hh h 时0 ~ 23
Minute Mi n 分钟0 ~ 59
Second Ss s 秒0 ~ 59
Millisecond Ms - 毫秒0 ~ 999
access 和asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp 中,这些函数的用法也类似。
举例:
1.GetDate() 用于sql server :select GetDate()
2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为514592 秒
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为5 天
3.DatePart('w','2005-7-25 22:56:32')返回值为2 即星期一(周日为1,周六为7)
DatePart('d','2005-7-25 22:56:32')返回值为25即25号
DatePart('y','2005-7-25 22:56:32')返回值为206即这一年中第206天DatePart('yyyy','2005-7-25 22:56:32')返回值为2005即2005年
SQL Server 日期和时间函数
1、常用日期方法(下面的GetDate() = '2006-11-08 13:37:56.233') (1)DATENAME ( datepart ,date )
返回表示指定日期的指定日期部分的字符串。Datepart详见下面的列表. SELECT DateName(day,Getdate()) –返回8
(2)DATEPART ( datepart , date )
返回表示指定日期的指定日期部分的整数。
SELECT DATEPART(year,Getdate()) –返回2006
(3)DATEADD (datepart , number, date )
返回给指定日期加上一个时间间隔后的新datetime 值。
SELECT DATEADD(week,1,GetDate()) --当前日期加一周后的日期
(4)DATEDIFF ( datepart , startdate , enddate )
返回跨两个指定日期的日期边界数和时间边界数。
SELECT DATEDIFF(month,'2006-10-11','2006-11-01') --返回1
(5)DAY ( date )
返回一个整数,表示指定日期的天datepart 部分。
SELECT day(GetDate()) –返回8
(6)GETDATE()
以datetime 值的SQL Server 2005 标准内部格式返回当前系统日期和时间。SELECT GetDate() --返回2006-11-08 13:37:56.233
(7)MONTH ( date )
返回表示指定日期的―月‖部分的整数。
SELECT MONTH(GETDATE()) --返回11
(8)YEAR ( date )
返回表示指定日期的―年‖部分的整数。
SELECT YEAR(GETDATE()) --返回2006
2、取特定日期
(1)获得当前日期是星期几
SELECT DateName(weekday,Getdate()) --Wednesday
(2)计算哪一天是本周的星期一
SELECT DATEADD(week, DATEDIFF(week,'1900-01-01',getdate()), '1900-01-01') --返回2006-11-06 00:00:00.000
或
SELECT DATEADD(week, DATEDIFF(week,0,getdate()),0)
(3)当前季度的第一天
SELECT DATEADD(quarter, DATEDIFF(quarter,0,getdate()), 0)—返回2006-10-01
00:00:00.000
(4)如何取得某个月的天数
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,'2006-02-03')+1,0))) —返回28 (5)一个季度多少天
declare @m tinyint,@time smalldatetime
select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
when @m between 4 and 6 then 4
when @m between 7 and 9 then 7
else 10 end
select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select datediff(day,@time,dateadd(mm,3,@time)) —返回92
(6)获得年月日(yyyy-MM-dd)
SELECT CONVERT(VARCHAR(10),GETDATE(),120) –返回2006-11-08
3、其它
(1)--下面的示例将日期指定为数字。数据库引擎将0 解释为1900 年1 月1 日。SELECT MONTH(0), DAY(0), YEAR(0) –返回1 1 1900
--下面两句是等效的
SELECT DATENAME(WEEKDAY,0)
SELECT DATENAME(WEEKDAY,'1900-01-01')
(2)SET DATEFIRST { number | @number_var }
将一周的第一天设置为从1 到7 的一个数字。
SET DATEFIRST 1 --表示一周的第一天是―星期一"
SELECT DATENAME(WEEKDAY,GETDATE()) --Wednesday
SELECT DATEPART(weekday,GETDATE()) --返回3
--查看当前设置情况
select @@DATEFIRST
(3)SET DATEFORMAT { format | @format_var }
设置用于输入datetime 或smalldatetime 数据的日期部分(月/日/年)的顺序。...有效参数包括mdy、dmy、ymd、ydm、myd 和dym。
...该设置仅用在将字符串转换为日期值时的解释中。它不影响日期值的显示。...SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置。...SET DATEFORMAT 将覆盖SET LANGUAGE 的隐式日期格式设置。
下面是例子:
-- Set date format to year, day, month.
SET DATEFORMAT ydm;
GO
DECLARE @datevar DATETIME;
SET @datevar = '1998/31/12';
SELECT @datevar AS DateVar;
GO
-- Set date format to year, month, day.
SET DATEFORMAT ymd;
GO
sql查询月记录,一周记录,当天记录时间:2011-08-09 03:48来源:未知作者:admin 点击: 157 次SELECT * FROM 表WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC 本月记录SELECT * FROM 表WHERE datediff(month,[dateadd],getdate())=0 本周记录SELECT * FROM 表WHERE datediff(week,[d SELECT * FROM 表WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT(Nvarchar, GETDATE(), 111) ORDER BY dateandtime DESC 本月记录 SELECT * FROM 表WHERE datediff(month,[dateadd],getdate())=0 本周记录 SELECT * FROM 表WHERE datediff(week,[dateadd],getdate())=0 当天记录 SELECT * FROM 表WHERE datediff(day,[dateadd],getdate())=0 sql server中的时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17 4. datepart 返回代表指定日期的指定日期部分的整数。 SELECT DATEPART(month, '2004-10-15') --返回10 5. datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, '2004-10-15') --返回:星期五 6. day(), month(),year() --可以与datepart对照一下 select 当前日期=convert(varchar(10),getdate(),120) ,当前时间=convert(varchar(8),getdate(),114)
本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概念 在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法. 通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个: Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。 Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。 epoch:时间点。时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示。 clock tick:时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由CPU控制的。一个clock tick不是CPU的一个时钟周期,而是C/C++的一个基本计时单位。 我们可以使用ANSI标准库中的time.h头文件。这个头文件中定义的时间和日期所使用的方法,无论是在结构定义,还是命名,都具有明显的C语言风格。下面,我将说明在C/C++中怎样使用日期的时间功能。 2.计时 C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下: clock_t clock( void ); 这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义: #ifndef _CLOCK_T_DEFINED
日期与时间函数 DATE 返回代表特定日期的序列号。如果在键入函数前,单元格格式为“常规”,则结果将设为日期格式。 语法 DATE(year,month,day) Year 参数year 可以为一到四位数字。 ?如果year 位于0(零)到1899(包含)之间,则WPS表格会将该值加上1900,再计算年份。例如:DATE(108,1,2)将返回2008 年1 月 2 日(1900+108)。 ?如果year 位于1900 到9999(包含)之间,则WPS表格将使用该数值作为年份。 例如:DATE(2008,1,2)将返回2008 年 1 月 2 日。 ?如果year 小于0 或大于等于10000,则WPS表格将返回错误值#NUM!。 Month 代表每年中月份的数字。如果所键入的月份大于12,将从指定年份的一月份开始往上加算。例如:DATE(2008,14,2)返回代表2009 年2 月 2 日的序列号。 Day 代表在该月份中第几天的数字。如果day 大于该月份的最大天数,则将从指定月份的第一天开始往上累加。例如,DATE(2008,1,35)返回代表2008 年 2 月4 日的序列号。 示例 如果您将示例复制到空白工作表中,可能会更易于理解该示例。 DATEVALUE 返回date_text 所表示的日期的序列号。函数DATEVALUE 的主要功能是将以文本表示的日期转换成一个序列号。
语法 DATEVALUE(date_text) Date_text 代表以WPS表格日期格式表示的日期的文本。例如,"2008-1-30" 或"30-Jan-08" 就是带引号的文本,它用于代表日期。在使用WPS表格时,date_text 必须表示1900 年 1 月1 日到9999 年1 2 月31 日之间的一个日期。如果date_text 超出范围,则函数 DATEVALUE 返回错误值#VALUE!。 如果省略date_text 中的年份部分,则函数DATEVALUE 使用计算机系统内部时钟的当前年份。date_text 中的时间信息将被忽略。 说明 ?WPS表格可将日期存储为可用于计算的序列号。默认情况下,1900 年1 月1 日的序列号是1,而2008 年 1 月 1 日的序列号是39448,这是因为它距1900 年 1 月 1 日有39448 天。 ?大部分函数都会自动将日期值转换成序列号。 示例 如果您将示例复制到空白工作表中,可能会更易于理解该示例。 注意若要查看序列号所代表的日期,请选择该日期所在的单元格,单击“格式”菜单上的“单元格”,再单击“数字”选项卡,然后单击“分类”框中的“日期”。 DATEDIF DATEDIF函数,主要用于计算两个日期之间的天数、月数或年数。其返回的值是两个日期之间的年\月\日间隔数。
DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21:25 Label2.Text = dt.ToFileTime().ToString();//127756416859912816 Label3.Text = dt.ToFileTimeUtc().ToString();//127756704859912816 Label4.Text = dt.ToLocalTime().ToString();//2005-11-5 21:21:25 Label5.Text = dt.ToLongDateString().ToString();//2005年11月5日Label6.Text = dt.ToLongTimeString().ToString();//13:21:25 Label7.Text = dt.ToOADate().ToString();//38661.5565508218 Label8.Text = dt.ToShortDateString().ToString();//2005-11-5 Label9.Text = dt.ToShortTimeString().ToString();//13:21 Label10.Text = dt.ToUniversalTime().ToString();//2005-11-5 5:21:25 ?2005-11-5 13:30:28.4412864 Label1.Text = dt.Year.ToString();//2005 Label2.Text = dt.Date.ToString();//2005-11-5 0:00:00 Label3.Text = dt.DayOfWeek.ToString();//Saturday Label4.Text = dt.DayOfYear.ToString();//309 Label5.Text = dt.Hour.ToString();//13 Label6.Text = https://www.sodocs.net/doc/469785785.html,lisecond.ToString();//441 Label7.Text = dt.Minute.ToString();//30 Label8.Text = dt.Month.ToString();//11 Label9.Text = dt.Second.ToString();//28 Label10.Text = dt.Ticks.ToString();//632667942284412864 Label11.Text = dt.TimeOfDay.ToString();//13:30:28.4412864 Label1.Text = dt.ToString();//2005-11-5 13:47:04 Label2.Text = dt.AddYears(1).ToString();//2006-11-5 13:47:04 Label3.Text = dt.AddDays(1.1).ToString();//2005-11-6 16:11:04 Label4.Text = dt.AddHours(1.1).ToString();//2005-11-5 14:53:04 Label5.Text = dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04 Label6.Text = dt.AddMonths(1).ToString();//2005-12-5 13:47:04 Label7.Text = dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05
mysql 中时间和日期函数 一、MySQL 获得当前日期时间函数 1.1获得当前日期+时间(date + time)函数:now() mysql>select now(); +---------------------+ | now() | +---------------------+ |2008-08-0822:20:46| +---------------------+ 除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() ,current_timestamp ,localtime() ,localtime ,localtimestamp -- (v4.0.6) ,localtimestamp() -- (v4.0.6) 这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。 1.2获得当前日期+时间(date + time)函数:sysdate() sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了: mysql>select now(), sleep(3), now(); +---------------------+----------+---------------------+ | now() | sleep(3) | now() | +---------------------+----------+---------------------+ |2008-08-0822:28:21|0|2008-08-0822:28:21| +---------------------+----------+---------------------+ mysql>select sysdate(), sleep(3), sysdate(); +---------------------+----------+---------------------+
excel使用日期和时间函数公式 excel使用日期和时间函数公式excel如何显示当前日期函数公式 显示当前年份函数:【=year(now())】 显示当前月份函数:【=month(now())】 显示当前日期函数:【=day((now()))】 显示当前星期函数:【=text(now(),"aaaa")】 显示当前准确时间:【=text(now(),"hh:mm:ss")】 显示当前年月日:【=today()】 显示当前年月日和时间:【=now()】 使用方法:直接在某单元格输入以上函数公式即可获得结果。 excel如何通过日期判断星期几 通过日期显示星期几:【=weekday(a2,2)】 通过日期显示中文带星期:【=text(a2,"aaaa")】 通过日期计算中文星期:【=text(a4,"aaa")】 通过日期计算英文星期简写:【=text(a5,"ddd")】 通过日期计算英文星期:【=text(a5,"dddd")】 使用方法:指定输入日期的单元格,输入以上函数公式即可获取星期。 excel如何求月份天数函数 求某日期的月份天数:
【=day(date(year(a2),month(a2)+1,0))】使用方法:需要指定包含日期的单元格。 直接求当前月份天数:【=day(eomonth(now(),0))】使用方法:直接在某单元格输入以上公式即可获取天数。 求当前月份天数减去周六和周日:【=sumproduct(--(mod(row(indirect(date(year(now()),month (now()),1)&":"&date(year(now()),month(now())+1,0))),7)>1 ))】使用方法:直接在某单元格输入以上公式即可获取天数。 excel快捷键快速获取日期时间 当然,在有些情况下,我们可以直接通过excel快捷键来获取当前的日期和时间。 获取当前年月日快捷键:【ctrl+;】 获取当前时间快捷键:【ctrl+shift+;】 获取年月日和时间:先在单元格使用【ctrl+;】,然后空格在使用快捷键【ctrl+shift+;】
20个Excel时间函数的使用方法 1.DATE 用途:返回代表特定日期的序列号。 语法:DATE(year,month,day) 参数:year为一到四位,根据使用的日期系统解释该参数。默认情况下,Excel for Windows使用1900日期系统,而Excel for Macintosh使用1904日期系统。Month代表每年中月份的数字。如果所输入的月份大于12,将从指定年份的一月份执行加法运算。Day 代表在该月份中第几天的数字。如果day 大于该月份的最大天数时,将从指定月份的第一天开始往上累加。 注意:Excel按顺序的序列号保存日期,这样就可以对其进行计算。如果工作簿使用的是1900日期系统,则Excel会将1900年1月1日保存为序列号1。同理,会将1998 年1月1日保存为序列号35796,因为该日期距离1900年1月1日为35795天。 实例:如果采用1900日期系统(Excel默认),则公式“=D ATE(2001,1,1)”返回36892。 2.DATEVaLUE 用途:返回date_text所表示的日期的序列号。该函数的主要用途是将文字表示的日期转换成一个序列号。 语法:DATEVaLUE(date_text) 参数:Date_text是用Excel日期格式表示日期的文本。在使用1900日期系统中,date_text必须是1900 年1月1日到9999年12月31日之间的一个日期;而在1904日期系统中,date_text必须是1904年1月1日到9999年12月31日之间的一个日期。如果date_text超出上述范围,则函数DATEVaLUE返回错误值#value!。 如果省略参数date_text中的年代,则函数DATEVaLUE使用电脑系统内部时钟的当前年代,且date_text中的时间信息将被忽略。 实例:公式“=DATEVaLUE("2001/3/5")”返回36955,DATEVaLUE("2-26")返回36948。 3.DAY 用途:返回用序列号(整数1到31)表示的某日期的天数,用整数 1 到31 表示。 语法:DAY(serial_number) 参数:Serial_number是要查找的天数日期,它有多种输入方式:带引号的文本串(如"1998/01/30")、序列号(如1900日期系统的35825表示的1998年1月30日),以及其他公式或函数的结果(如DATEVaLUE("1998/1/30"))。 实例:公式“=DAY("2001/1/27")”返回27,=DAY(35825)返回30, =DAY(DATEVaLUE("2001/1/25"))返回25。
SQL Server 日期和时间函数 1、常用日期方法(下面的GetDate() = '2006-11-08 13:37:56.233') (1)DATENAME ( datepart ,date ) 返回表示指定日期的指定日期部分的字符串。Datepart详见下面的列表. SELECT DateName(day,Getdate()) –返回8 (2)DATEPART ( datepart , date ) 返回表示指定日期的指定日期部分的整数。 SELECT DATEPART(year,Getdate()) –返回2006 (3)DATEADD (datepart , number, date ) 返回给指定日期加上一个时间间隔后的新datetime 值。 SELECT DATEADD(week,1,GetDate()) --当前日期加一周后的日期 (4)DATEDIFF ( datepart , startdate , enddate ) 返回跨两个指定日期的日期边界数和时间边界数。 SELECT DATEDIFF(month,'2006-10-11','2006-11-01') --返回1 (5)DAY ( date ) 返回一个整数,表示指定日期的天datepart 部分。 SELECT day(GetDate()) –返回8 (6)GETDATE() 以datetime 值的SQL Server 2005 标准内部格式返回当前系统日期和时间。SELECT GetDate() --返回2006-11-08 13:37:56.233 (7)MONTH ( date ) 返回表示指定日期的―月‖部分的整数。 SELECT MONTH(GETDATE()) --返回11 (8)YEAR ( date ) 返回表示指定日期的―年‖部分的整数。 SELECT YEAR(GETDATE()) --返回2006 2、取特定日期 (1)获得当前日期是星期几 SELECT DateName(weekday,Getdate()) --Wednesday
Sql Server中的日期与时间函数 1.GetDate( ) 返回系统目前的日期与时间'瞫濾#縶? 当前系统日期、时间select getdate() 2.DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期" 鐺e蠅5流 dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值,例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000?礛娞>?? 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17? 4.DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值。 SELECT DATEPART(month, '2004-10-15') --返回10 5.datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, '2004-10-15') --返回:星期五S 6.day(), month(),year() --可以与datepart对照一下 select 当前日期=convert(varchar(10),getdate(),120) ,当前时间=convert(varchar(8),getdate(),114) select datename(dw,'2004-10-15') select 本年第多少周=datename(week,'2004-10-15') 今天是周几=datename(weekday,'2004-10-15') 7.DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值date2-date1 8.DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称 参数interval的设定值如下: Year Yy yyyy 年1753 ~ 9999 Quarter Qq q 季 1 ~ 4 Month Mm m 月 1 ~ 12 Day of year Dy y 一年中的第几日1-366 Day Dd d 日1-31 Weekday Dw w 一周中的第几日1-7 Week Wk ww 一年中的第几周0 ~ 51 Hour Hh h 时0 ~ 23 Minute Mi n 分钟0 ~ 59 Second Ss s 秒0 ~ 59 Millisecond Ms - 毫秒0 ~ 999 举例:/0R符?氦? DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为514592 秒 DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为5 天 DatePart('w','2005-7-25 22:56:32')返回值为2 即星期一(周日为1,周六为7) DatePart('d','2005-7-25 22:56:32')返回值为25即25号 DatePart('y','2005-7-25 22:56:32')返回值为206即这一年中第206天 DatePart('yyyy','2005-7-25 22:56:32')返回值为2005即2005年
sql server日期比较日期查询常用语句 关键字: sql sql server日期比较日期查询常用语句 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DATEFIRST)设定决定了你的系统使用哪一天作为一周的第一天。所有以下的例子都是以星期天作为一周的第一天来建立,也就是第一天设置为7。假如你的第一天设置不一样,你可能需要调整这些例子,使它和不同的第一天设置相符合。你可以通过@@DATEFIRST函数来检查第一天设置。 为了理解这些例子,我们先复习一下DATEDIFF和DATEADD函数。DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数。DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期。要了解更多的DATEDIFF和DATEADD函数以及时间间隔可以阅读微软联机帮助。 使用DATEDIFF和DATEADD函数来计算日期,和本来从当前日期转换到你需要的日期的考虑方法有点不同。你必须从时间间隔这个方面来考虑。比如,从当前日期到你要得到的日期之间有多少时间间隔,或者,从今天到某一天(比如1900-1-1)之间有多少时间间隔,等等。理解怎样着眼于时间间隔有助于你轻松的理解我的不同的日期计算例子。 一个月的第一天 第一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意:这个例子以及这篇文章中的其他例子都将只使用DATEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。 这是计算一个月第一天的SQL 脚本: SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate(),大部分人都知道这个是返回当前的日期和时间的函数。下一个执行的函数DATEDIFF(mm,0,getdate())是计算当前日期和"1900-01-01 00:00:00.000"这个日期之间的月数。记住:时期和时间变量和毫秒一样是从"1900-01-01 00:00:00.000"开始计算的。这就是为什么你可以在DATEDIFF 函数中指定第一个时间表达式为"0"。下一个函数是DATEADD,增加当前日期到"1900-01-01"的月数。通过增加预定义的日期"1900-01-01"和当前日期的月数,我们可以获得这个月的第一天。另外,计算出来的日期的时间部分将会是"00:00:00.000"。 这个计算的技巧是先计算当前日期到"1900-01-01"的时间间隔数,然后把它加到"1900-01-01"上来获得特殊的日期,这个技巧可以用来计算很多不同的日期。下一个例子也
日期和时间函数 功能说明 DATE返回特定日期的序列号 DATEVALUE将文本格式的日期转换为序列号 DAY将序列号转换为月份日期 DAYS360以一年360 天为基准计算两个日期间的天数 EDATE返回用于表示开始日期之前或之后月数的日期的序列号EOMONTH返回指定月数之前或之后的月份的最后一天的序列号HOUR将序列号转换为小时 MINUTE将序列号转换为分钟 MONTH将序列号转换为月 NETWORKDAYS返回两个日期间的全部工作日数 NOW返回当前日期和时间的序列号 SECOND将序列号转换为秒 TIME返回特定时间的序列号 TIMEVALUE将文本格式的时间转换为序列号 TODAY返回今天日期的序列号 WEEKDAY将序列号转换为星期日期 WEEKNUM将序列号转换为代表该星期为一年中第几周的数字WORKDAY返回指定的若干个工作日之前或之后的日期的序列号YEAR将序列号转换为年 YEARFRAC返回代表start_date 和end_date 之间的整天天数的年分数
查找和引用函数 全部显示函数说明 ADDRESS以文本形式将引用值返回到工作表的单个单元格 AREAS返回引用中涉及的区域个数 CHOOSE从值的列表中选择值 COLUMN返回引用的列号 COLUMNS返回引用中包含的列数 HLOOKUP查找数组的首行,并返回指定单元格的值 HYPERLINK创建快捷方式或跳转,以打开存储在网络服务器、Intranet 或Internet 上的文档 INDEX使用索引从引用或数组中选择值 INDIRECT返回由文本值指定的引用 LOOKUP在向量或数组中查找值 MATCH在引用或数组中查找值 OFFSET从给定引用中返回引用偏移量 ROW返回引用的行号 ROWS返回引用中的行数 RTD从支持COM 自动化的程序中检索实时数据 TRANSPOSE返回数组的转置 VLOOKUP在数组第一列中查找,然后在行之间移动以返回单元格的值
1.DATE 用途:返回代表特定日期的序列号。 语法:DATE(year,month,day) 参数:year为一到四位,根据使用的日期系统解释该参数。默认情况下,Excel for Windows使用1900日期系统,而Excel for Macintosh使用1904日期系统。Month代表每年中月份的数字。如果所输入的月份大于12,将从指定年份的一月份执行加法运算。Day 代表在该月份中第几天的数字。如果day 大于该月份的最大天数时,将从指定月份的第一天开始往上累加。 注意:Excel按顺序的序列号保存日期,这样就可以对其进行计算。如果工作簿使用的是1900日期系统,则Excel会将1900年1月1日保存为序列号1。同理,会将1998年1月1日保存为序列号35796,因为该日期距离1900年1月1日为35795天。 实例:如果采用1900日期系统(Excel默认),则公式“=DATE(2001,1,1)”返回36892。 2.DATEVaLUE 用途:返回date_text所表示的日期的序列号。该函数的主要用途是将文字表示的日期转换成一个序列号。 语法:DATEVaLUE(date_text) 参数:Date_text是用Excel日期格式表示日期的文本。在使用1900日期系统中,date_text必须是1900年1月1日到9999年12月31日之间的一个日期;而在1904日期系统中,date_text必须是1904年1月1日到9999年12月31日之间的一个日期。如果date_text超出上述范围,则函数DATEVaLUE返回错误值#value!。 如果省略参数date_text中的年代,则函数DATEVaLUE使用电脑系统内部时钟的当前年代,且date_text中的时间信息将被忽略。 实例:公式“=DATEVaLUE("2001/3/5")”返回36955,DATEVaLUE("2-26")返回36948。 3.DAY 用途:返回用序列号(整数1到31)表示的某日期的天数,用整数1 到31 表示。 语法:DAY(serial_number) 参数:Serial_number是要查找的天数日期,它有多种输入方式:带引号的文本串(如"1998/01/30")、序列号(如1900日期系统的35825表示的1998年1月30日),以及其他公式或函数的结果(如DATEVaLUE("1998/1/30"))。 实例:公式“=DAY("2001/1/27")”返回27,=DAY(35825)返回30, =DAY(DATEVaLUE("2001/1/25"))返回25。 4.DAYS360 用途:按照一年360天的算法(每个月30天,一年共计12 个月),返回两日期间相差的天数。 语法:DAYS360(start_date,end_date,method)
SQL日期与时间函数2009年02月04日星期三上午10:50sql server日期时间函数 Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17 4. datepart 返回代表指定日期的指定日期部分的整数。 SELECT DATEPART(month, '2004-10-15') --返回10 5. datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, '2004-10-15') --返回:星期五 6. day(), month(),year() --可以与datepart对照一下 select 当前日期=convert(varchar(10),getdate(),120) ,当前时间=convert(varchar(8),getdate(),114) select datename(dw,'2004-10-15') select 本年第多少周=datename(week,'2004-10-15') ,今天是周几=datename(weekday,'2004-10-15') 函数参数/功能 GetDate( ) 返回系统目前的日期与时间 DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值date2-date1 DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期 DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值 DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称 参数interval的设定值如下: 值缩写(Sql Server)Access 和ASP 说明 Year Yy yyyy 年1753 ~ 9999 Quarter Qq q 季1 ~ 4 Month Mm m 月1 ~ 12 Day of year Dy y 一年的日数,一年中的第几日1-366 Day Dd d 日,1-31
在脚本中增加日期和时间函数 VBScript有许多函数,使你可以得到各种格式的日期和时间。你已经用过了这些函数中的一个。你可以用函数NOW返回当前的日期和时间: At the tone,the time will bi: <%=NOW%> 你应该注意,返回的日期和时间是你的Web服务器的系统时钟的日期和时间。如果身处纽约的某个人在看你的网页,他看到的日期和时间与她当地的日期和时间也许是不一至的。 函数NOW同时返回日期和时间。如果你只想返回当前日期,你可以使用函数DATE。如果你只想返回当前时间,你可以使用函数TIME。例如: The date is :<%=DATE%> The time is :<%=TIME%> 操作日期 使用函数MONTH(),DAY(),WEEKDAY(),和YEAR(),你可以把一个日期分割成更小的部分。所有这些函数都以一个日期表达式作为参数,并返回一个数字。这里有一个如何使用这些函数的例子: The Month is :<%=MONTH(DATE)%>
The Day is : <%=DAY(DATE)%>
The weekday is :<%=WEEKDAY(DATE)%>
The year is :<%=YEAR(DATE)%> 假设当前日期是1997年8月9日,星期三。如果你把上面的例子包含在一个ASP网页中,在浏览器中将显示如下的文字: The Month is : 7 The Day is : 9 The weekday is : 4 The year is : 1997 注意函数weekday()假定一个星期的第一天是星期日。如果你想把星期一作为一周的第一天,你可以使用如下的语句: The weekday is :<%=weekday(DATE,vbWednesday)%>
常用的PB时间函数汇总收藏 Day() 功能得到日期型数据中的号数(1到31之间的整数值)。 语法Day ( date ) 参数date:要得到号数的日期值返回值 Integer。函数执行成功时返回号数(1到31之间的整数值)。如果date参数的值为NULL,则Day()函数返回NULL。 -------------------------------------------------------------------------------- DayName() 功能得到指定日期是一周中的星期几(例如,Sunday, Monday...)。 语法DayName ( date ) 参数date:date类型值或变量返回值String。函数执行成功时返回指定日期的星期表示(例如,Sunday, Monday...)。如果date参数的值为NULL,则DayName()函数返回NULL。 -------------------------------------------------------------------------------- DayNumber() 功能得到日期型数据是一星期中的第几天(用1到7之间的整数表示,星期天为1,星期一为2,...)。 语法DayNumber ( date ) 参数date:date类型值或变量返回值Integer。函数执行成功时返回指定日期是一星期中的第几天(用1~7表示,星期天为1,星期一为2,...)。如果date 参数的值为NULL,则DayNumber()函数返回NULL。 -------------------------------------------------------------------------------- DaysAfter() 功能得到两个日期间的天数。 语法DaysAfter ( date1, date2 ) 参数date1:date类型,指定起始日期date2:date类型,指定终止日期返回值Long。函数执行成功时得到两个日期之间的天数。如果date2的日期在date1的前面,那么DaysAfter()函数返回负值。如果任何参数的值为NULL,则DaysAfter()函数返回NULL。 -------------------------------------------------------------------------------- Hour() 功能得到时间值中的小时,采用24小时制。 语法Hour ( time ) 参数time:time类型的值返回值Integer。函数执行成功时得到time参数中的小时(00到23之间)。如果time参数的值为NULL,则Hour()函数返回NULL。---------------------------------------------------------------------
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪一天是一个星期的第一天这个设置决定。第一天(DATEFIRST)设定决定了你的系统使用哪一天作为一周的第一天。所有以下的例子都是以星期天作为一周的第一天来建立,也就是第一天设置为7。假如你的第一天设置不一样,你可能需要调整这些例子,使它和不同的第一天设置相符合。你可以通过@@DATEFIRST函数来检查第一天设置。 为了理解这些例子,我们先复习一下DATEDIFF和DATEADD函数。DATEDIFF函数计算两个日期之间的小时、天、周、月、年等时间间隔总数。DATEADD函数计算一个日期通过给时间间隔加减来获得一个新的日期。要了解更多的DATEDIFF和DATEADD函数以及时间间隔可以阅读微软联机帮助。 使用DATEDIFF和DATEADD函数来计算日期,和本来从当前日期转换到你需要的日期的考虑方法有点不同。你必须从时间间隔这个方面来考虑。比如,从当前日期到你要得到的日期之间有多少时间间隔,或者,从今天到某一天(比如1900-1-1)之间有多少时间间隔,等等。理解怎样着眼于时间间隔有助于你轻松的理解我的不同的日期计算例子。 一个月的第一天 第一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意:这个例子以及这篇文章中的其他例子都将只使用DATEDIFF和DATEADD函数来计算我们想要的日期。每一个例子都将通过计算但前的时间间隔,然后进行加减来得到想要计算的日期。 这是计算一个月第一天的SQL 脚本: SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate(),大部分人都知道这个是返回当前的日期和时间的函数。下一个执行的函数DATEDIFF(mm,0,getdate())是计算当前日期和“1900-01-01 00:00:00.000”这个日期之间的月数。记住:时期和时间变量和毫秒一样是从“1900-01-01 00:00:00.000”开始计算的。这就是为什么你可以在DATEDIFF函数中指定第一个时间表达式为“0”。下一个函数是DATEADD,增加当前日期到“1900-01-01”的月数。通过增加预定义的日期“1900-01-01”和当前日期的月数,我们可以获得这个月的第一天。另外,计算出来的日期的时间部分将会是“00:00:00.000”。 这个计算的技巧是先计算当前日期到“1900-01-01”的时间间隔数,然后把它加到“1900-01-01”上来获得特殊的日期,这个技巧可以用来计算很多不同的日期。下一个例子也是用这个技巧从当前日期来产生不同的日期。 本周的星期一 这里我是用周(wk)的时间间隔来计算哪一天是本周的星期一。 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)