AVG 函数
例子 1
现在,我们希望计算 "OrderPrice" 字段的平均值。
我们使用如下 SQL 语句:
SELECT AVG(OrderPrice) AS OrderAverage FROM Orders结果集类似这样:
MAX() 函数
MAX 函数返回一列中的最大值。NULL 值不包括在计算中。
SQL MAX() 语法
SELECT MAX(column_name) FROM table_name注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。
SQL MAX() 实例
我们拥有下面这个 "Orders" 表:
MIN() 函数
MIN 函数返回一列中的最小值。NULL 值不包括在计算中。SQL MIN() 语法
SUM() 函数
UCASE() 函数
UCASE 函数把字段的值转换为大写。
SQL UCASE() 语法
SELECT UCASE(column_name) FROM table_name SQL UCASE() 实例
LCASE() 函数
LCASE 函数把字段的值转换为小写。
SQL LCASE() 语法
SELECT LCASE(column_name) FROM table_name SQL LCASE() 实例
我们拥有下面这个 "Persons" 表:
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)
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"上来获得特殊的日期,这个技巧可以用来计算很多不同的日期。下一个例子也
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
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用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)
DATEPART 返回代表指定日期的指定日期部分的整数。 语法 DATEPART ( datepart ,date ) 参数 datepart 是指定应返回的日期部分的参数。下表列出了Microsoft? SQL Server? 识别的日期部分和缩写。 week(wk, ww) 日期部分反映对 SET DATEFIRST 作的更改。任何一年的 1 月 1 日定义了week日期部分的开始数字,例如:DATEPART(wk, 'Jan 1, xxxx') = 1,此处 xxxx 代表任一年。 weekday (dw) 日期部分返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday日期部分产生的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第一天。 date 是返回datetime或smalldatetime值或日期格式字符串的表达式。对 1753 年 1 月 1 日之后的日期用datetime 数据类型。更早的日期存储为字符数据。
当输入datetime值时,始终将其放入引号中。因为smalldatetime只精确到分钟,所以当用smalldatetime值时,秒和毫秒总是 0。 如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果two digit year cutoff 为 2049 (默认),则 49 被解释为 2049,2050 被解释为1950。为避免模糊,请使用四位数的年份。 有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。 返回类型 int 注释 DAY、MONTH、和 YEAR 函数分别是 DATEPART(dd, date)、DATEPART(mm, date)、和 DATEPART(yy, date) 的同义词。 示例 GETDATE 函数返回当前日期;然而,比较时并不总是需要完整的日期信息(通常只是对日期的一部分进行比较)。此示例显示 GETDATE 及 DATEPART 的输出。 SELECT GETDATE() AS 'Current Date' GO 下面是结果集: Current Date --------------------------- Feb 18 1998 11:46PM SELECT DATEPART(month, GETDATE()) AS 'Month Number' GO 下面是结果集: Month Number ------------ 2 此示例假设日期是 5 月 29 日。
oracle SQL里常用的时间函数,经典推荐 相信很多人都有过统计某些数据的经历,比如,要统计财务的情况,可能要按每年,每季度,每月,甚至每个星期来分别统计。那在oracle 中应该怎么来写sql语句呢,这个时候Oracle的日期函数会给我们很多帮助。 常用日期型函数 1。Sysdate 当前日期和时间 SQL> Select sysdate from dual; SYSDATE ---------- 21-6月-05 2。Last_day 本月最后一天 SQL> Select last_day(sysdate) from dual; LAST_DAY(S ---------- 30-6月-05 3。Add_months(d,n) 当前日期d后推n个月
用于从一个日期值增加或减少一些月份 date_value:=add_months(date_value,number_of_months) SQL> Select add_months(sysdate,2) from dual; ADD_MONTHS ---------- 21-8月-05 4。Months_between(f,s) 日期f和s间相差月数 SQL> select months_between(sysdate,to_date('2005-11-12','yyyy-mm-dd'))fro m dual; MONTHS_BETWEEN(SYSDATE,TO_DATE('2005-11-12','YYYY-MM-D D')) ---------------------------------------------------------- -4.6966741 5。NEXT_DAY(d, day_of_week) 返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个工作日的日期。参数"day_of_week"必须为该星期中的某一天。
SQL 中如何取得当前(或指定)月份的天数
一、获取当前日期 Select getdate() 结果:2014-05-22 18:48:52.030 二、获取当前日期到 SQL 初始日期的差值 select datediff(mm,0,getdate()) 结果:1372 其中 mm 代表差值单位为月,0 为 SQL 内置初始日期(1900 年 1 月 1 日 0 时 0 分 0 秒) 三、给初始日期加上上面得到的月数,得到本月 1 日的日期 select dateadd(mm,datediff(mm,0,getdate()),0) 结果:2014-05-01 00:00:00.000 四、给初始日期加上上面得到的月数加 1,得到下月 1 日的日期 select dateadd(mm,datediff(mm,0,getdate())+1,0) 结果:2014-06-01 00:00:00.000 五、将上面得到的日期减 1,得到本月最后一天的日期,即本月倒数第一天的日期 select dateadd(mm,datediff(mm,0,getdate())+1,0)-1 结果:2014-05-31 00:00:00.000 六、取出上面日期中的“日” select day(dateadd(mm,datediff(mm,0,getdate())+1,0)-1) 结果:31
函数解释
DATEDIFF(datepart,startdate,enddate)
功能:返回两个日期之间的天数。 startdate 和 enddate 参数是合法的日期表达式。
DATEADD(datepart,number,date)
功能:在日期中添加或减去指定的时间间隔。 date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于 过去的时间,此数是负数。
sql日期函数 1.一个月第一天的 Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 3.一年的第一天 Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 4.季度的第一天 Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 5.当天的半夜 Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) 6.上个月的最后一天 Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 7.去年的最后一天 Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) 8.本月的最后一天 Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) 9.本年的最后一天 Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)) 10.本月的第一个星期一 select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 返回当前日期和时间 通过函数GETDATE(),你可以获得当前的日期和时间。函数GETDATE()可以用来作为DATEDIME型字段的缺省值。这对插入记录时保存当时的时间是有用的。要建立一个表,其中的记录包含有当前的日期和时间,可以添加一个DATETIME型字段,指定其缺省值为函数GETDATE()的返回值,就象这样: Create TABLE site_log ( username VARCHAR(40), useractivity VARCHAR(100), entrydate DATETIME DEFAULT GETDATE() ) 转换日期和时间 函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3.33毫秒)。 要得到不同格式的日期和时间,你需要使用函数CONVERT()。例如,当下面的这个语句执行时,显示的时间将包括毫秒: Select CONVERT(VARCHAR(30),GETDATE(),9)注意例子中数字9的使用。这个数字指明了在显示日期和时间时使用哪种日期和时间格式。当这个语句执行时,将显示如下的日期和时间: Nov 30 1997 3:29:55:170AM (1 row(s) affected)在函数CONVERT()中你可以使用许多种不同风格的日期和时间格式。
. 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
sql中日期函数的用法 ———————————————————————————————————————— 1.DateAdd (I , N , D ) 将一个日期加上一段期间后的日期。I :设定一个日期(Date )所加上的一段期间的单位。譬如interval="d" 表示N的单位为日。I的设定值如下: yyyy Y ear 年 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 > Y ear 年 q Quarter 季 m Month 月 d Day 日 w Weekday 星期 h Hour 时 n Minute 分 s Second 秒 D1 ,D2:计算期间的两个日期表达式,若>date1 较早,则两个日期之间的期间结果为正值;若>date2 较早,则结果为负值。
1.一个月第一天的 Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 3.一年的第一天 Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 4.季度的第一天 Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 5.当天的半夜 Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) 6.上个月的最后一天 Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 7.去年的最后一天 Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) 8.本月的最后一天 Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) 9.本年的最后一天 Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)) 10.本月的第一个星期一 select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 返回当前日期和时间 通过函数GETDATE(),你可以获得当前的日期和时间。函数GETDATE()可以用来作为DATEDIME 型字段的缺省值。这对插入记录时保存当时的时间是有用的。要建立一个表,其中的记录包含有当前的日期和时间,可以添加一个DATETIME型字段,指定其缺省值为函数GETDATE()的返回值,就象这样: Create TABLE site_log ( username VARCHAR(40), useractivity VARCHAR(100), entrydate DATETIME DEFAULT GETDATE()) 转换日期和时间 函数GETDATE()的返回值在显示时只显示到秒。实际上,SQL Sever内部时间可以精确到毫
几种SQL取日期部分的方法 一.convert convert(varchar(10),getdate(),120) : varchar(10) 截取位数可以调节,最多能显示19位(varchar(19)) 如:2009-12-12 10:10:10 -> 2009-12-12
1 这些样式值将返回不确定的结果。包括所有(yy)(不带世纪数位)样式和一部分(yyyy)(带世纪数位)样式。 2 默认值(style0或100、9或109、13或113、20或120以及21或121)始终返回世纪数位(yyyy)。 3 转换为datetime时输入;转换为字符数据时输出。 4 为用于XML 而设计。对于从datetime或smalldatetime到字符数据的转换,其输出格式如上一个表所述。 5 回历是有多种变体的日历系统。SQL Server 使用科威特算法。 重要提示:默认情况下,SQL Server 基于截止年份2049 年来解释两位数的年份。换言之,就是将两位数的年份49 解释为2049,将两位数的年份50 解释为1950。许多客户端应用程序(如基于自动化对象的应用程序)都使用截止年份2030 年。SQLServer 提供了“两位数年份截止”配置选项,可通过此选项更改SQL Server 使用的截止年份,从而对日期进行一致处理。建议您指定四位数年份。 6 仅支持从字符数据转换为datetime或smalldatetime。仅表示日期或时间成分的字符数据转换为datetime或smalldatetime数据类型时,未指定的时间成分设置为00:00:00.000,未指定的日期成分设置为1900-01-01。 7使用可选的时间区域指示符(Z) 更便于将具有时区信息的XML datetime值映射到没有时区的SQL Server datetime值。Z 是时区UTC-0 的指示符。其他时区则以+ 或- 方向的HH:MM 偏移量来指示。例如:2006-12-12T23:45:12-08:00。 从smalldatetime转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。使用相应的char或varchar数据类型长度从datetime或smalldatetime值转换时,可截断不需要的日期部分。 二.DATEPART 返回代表指定日期的指定日期部分的整数。 语法 DATEPART ( datepart ,date ) 参数 datepart
SQL语句获取日期 核心提示:本教程为大家介绍SQL语句如何获取特定的日期。 SQL语句获取特定日期 1.一个月第一天的 Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 2.本周的星期一 Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 3.一年的第一天 Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 4.季度的第一天 Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 5.当天的半夜 Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) 6.上个月的最后一天 Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 7.去年的最后一天 Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) 8.本月的最后一天 Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) 9.本年的最后一天 Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)) 10.本月的第一个星期一 select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 返回当前日期和时间
与时间相关的SQL语句/sql获取当前时间/sql时间比较/sql时间格式化 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-1700: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) 7. select datename(dw,'2004-10-15') select 本年第多少周=datename(week,getdate()) ,今天是周几=datename(weekday,getdate()) 函数参数/功能 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 说明
SQL日期函数 DATEDIFF (Transact-SQL) 返回指定的startdate 和enddate 之间所跨的指定datepart 边界的计数(带符号的整数)。 语法 DATEDIFF ( datepart , startdate , enddate ) 参数 datepart 是指定所跨边界类型的startdate 和enddate 的一部分。下表列出了所有有效的datepart 参数。用户定义的变量等效项是无效的。 datepart 缩写 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 microsecond mcs nanosecond ns startdate 是一个表达式,可以解析为time、date、smalldatetime、datetime、datetime2 或datetimeoffset 值。date 可以是表达式、列表达式、用户定义的变量或字符串文字。从enddate 减去startdate。 enddate 请参阅startdate。 返回类型 返回值int 每个datepart 及其缩写都返回相同的值。 如果返回值超出int 的范围(-2,147,483,648 到+2,147,483,647),则会返回一个错误。对于millisecond,startdate 与enddate 之间的最大差值为24 天20 小时31 分钟23.647 秒。对于second,最大差值为68 年。