Ⅰ sql Server日期函数之正确确定某天是星期几
今天是星期几,例子 1:
setlanguageN'English'
selectdatename(weekday,getdate())Wednesday今天是星期几,例子 2:
setlanguageN'SimplifiedChinese'
selectdatename(weekday,getdate())星期三今天是星期几,例子 3:
setdatefirst1
selectdatepart(weekday,getdate())3 星期三注意:这里用到了另外一个 SQL Server 日期函数 datepart()。 set datefirst 1 表示设置一周的第一天为星期一。在老美,他们的一周的第一天习惯为星期天。我们可以通过 @@datefirst 函数得到当前会话的 datefirst 设置值。
select@@datefirst1你可能有疑问:set language 后面的语言参数是从哪里得到的?可以得到其他国家语言中的星期几吗?当然是可以的了源码天空
, 请看下面:
selectalias,*frommaster..syslanguages
如果我想得到韩语中的星期几,可以这样:
setlanguageN'Korean'
Ⅱ 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中怎样获得已知日期是星期几
Oracle数据库:
第一个:SELECT DECODE(dw,
0,
'星期天',
1,
'星期一',
2,
'星期二',
3,
'星期三',
4,
'星期四',
5,
'星期五',
6,
'星期六') WEEK_DAY
FROM (SELECT 7 -
TO_NUMBER(NEXT_DAY(TO_DATE('2012-12-12', 'yyyy-mm-dd'), 1) -
TO_DATE('2012-12-12', 'yyyy-mm-dd')) dw
FROM al);
第二个语句:
SELECT TO_CHAR(TO_DATE('2012-12-12', 'YYYY-MM-DD'), 'DAY') WEEK_DAY
FROM DUAL
SqlServer数据库:
select case datepart(weekday, getdate())
when 1 then
'星期天'
when 2 then
'星期一'
when 3 then
'星期二'
when 4 then
'星期三'
when 5 then
'星期四'
when 6 then
'星期五'
when 7 then
'星期六'
end
(3)sql星期函数扩展阅读:
SQL相关函数:
SQL Aggregate 函数:SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。
有用的 Aggregate 函数:AVG() - 返回平均值,COUNT() - 返回行数,FIRST() - 返回第一个记录的值,LAST() - 返回最后一个记录的值,MAX() - 返回最大值,MIN() - 返回最小值,SUM() - 返回总和
SQL Scalar 函数:SQL Scalar 函数基于输入值,返回一个单一的值。
有用的 Scalar 函数:UCASE() - 将某个字段转换为大写,LCASE() - 将某个字段转换为小写,MID() - 从某个文本字段提取字符;
LEN() - 返回某个文本字段的长度,ROUND() - 对某个数值字段进行指定小数位数的四舍五入,NOW() - 返回当前的系统日期和时间,FORMAT() - 格式化某个字段的显示方式。
参考资料:网络——sql
Ⅳ sql语句计算每个月有几个周六的函数
先建立函数,再执行下面的语句
CREATE FUNCTION getday --
(@datestart datetime,--启始日期
@dateend datetime, --结束日期
@DW VARCHAR(6)) --星期几
RETURNS INT
AS
BEGIN
DECLARE @DAYCOUNT int
SET @DAYCOUNT=0
while @datestart<=@dateend
begin
if datename(dw,@datestart)=@DW
set @DAYCOUNT=@DAYCOUNT+1
SET @DATESTART=DATEADD(DAY,1,@DATESTART)
end
RETURN(@DAYCOUNT)
END
GO
SELECT DBO.GETDAY('2008-01-01','2008-12-31','星期六') AS SATDAY,
DBO.GETDAY('2008-01-01','2008-12-31','星期日') AS SUNDAY
Ⅳ sql中日期函数的用法
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日的付款流水有单笔交易出现多张小票号的情况的小票号
这个要看一下你的表结构是什么样的啊?
Ⅵ SQL由已知几几年第几周星期几推出日期,麻烦给个函数
--我写的函数如下(凑合着用)
Create Function xfn_GetDate(@YEAR INT,@WEEK INT,@DAY INT)
RETURNS DATETIME
AS
BEGIN
DECLARE @RST DATETIME
SET @RST=CAST( (CAST(@YEAR AS VARCHAR(20))+'-01-01') AS DATETIME)
WHILE @RST<CAST( (CAST(@YEAR AS VARCHAR(20))+'-12-31') AS DATETIME)
BEGIN
IF @WEEK=DATEPART(WW,@RST) AND @DAY=DATEPART(DW,@RST)
RETURN @RST
SET @RST=DATEADD(DD,1,@RST)
END
RETURN @RST
END
说明:@YEAR为年份,@WEEK为第几星期,@DAY为礼拜的第几天
运行
SELECT DBO.xfn_GetDate('2009',6,3)
得到的日期是:2009-02-03 00:00:00.000
我用的方法很粗糙,只是遍历年份的每一天而已..
Ⅶ SQL中可以提取周末日期的函数
select*
fromthetable
wheredatepart(weekday,thedatefield)in(1,7)
Ⅷ 用SQL语句计算出给定日期是星期几
1、首先可以直接用datepart函数,第一个参数设置成weekday就可以了,如下图所示。
Ⅸ SQL SERVER查询时间是一年中第几周的函数
1、获取当前系统数据库的日期和时间,可以利用函数GETDATE(),select GETDATE()。
Ⅹ SQL怎么获取星期几
今天工作中遇到一个需求:在每周的星期一至星期五的下午四点到五点,禁用一个程序的功能。这个功能是依赖于数据库中的存储过程的,因此想到了一个在存储过程中处理这个方法的解决方案。
if(当前时间在星期一至星期五之间and当前时间在16点至17点之间)beginreturnend
这个方法基于两个T-SQL内置函数:DATEPART()和@@DATEFIRST
DATEPART()函数的第一个参数可以是”weekday”,这时返回日期的星期数,在当前星期序列的次序。这个序列次序则依赖于SET DATEFIRST设置的参数,且可以通过@@DATEFIRST函数查看。所以DATEPART(WRRKDAY,GETDATE())这样获得的一个值是相对值。且相对的原点还是未知,这样会造成BUG。因此应该对这个方法进行一定的修改。
–加入一些相对偏移后的获取当前是星期几的方法DATEPART(WEEKDAY,