sql字符日期函数
A. sql常用的字符串函数都有哪些
常用的字符串函数有:
一、字符转换函数
1、ASCII()
2、CHAR()
3、LOWER()和UPPER()
4、STR()
二、去空格函数
1、LTRIM() 把字符串头部的空格去掉。
2、RTRIM() 把字符串尾部的空格去掉。
三、取子串函数
1、left()
2、RIGHT()
3、SUBSTRING()
四、字符串比较函数
1、CHARINDEX()
2、PATINDEX()
五、字符串操作函数
1、QUOTENAME()
2、REPLICATE()
3、REVERSE()
4、REPLACE()
4、SPACE()
5、STUFF()
六、数据类型转换函数
1、CAST()
2、CONVERT()
七、日期函数
1、day(date_expression)
2、month(date_expression)
3、year(date_expression)
4、DATEADD()
5、DATEDIFF()
6、DATENAME()
7、DATEPART()
8、GETDATE()
B. SQL鍐椤嚱鏁 杈揿叆鍙傛暟锛氭棩链燂纸YYYYMMDD锛夊拰涓嬮溃镆愪竴涓鍙傛暟 杩斿洖鏁版嵁锛氩弬鏁拌存槑瑕佽繑锲炵殑镞ユ湡銆
鍑芥暟浠g爜锛
createorreplacefunctionfunc_date(--鍒涘缓鍑芥暟钖岖Оfunc_date
p_yyyymmddnumber,--瀹氢箟鍙傛暟1
p_numnumber)--瀹氢箟鍙傛暟2
returndate--杩斿洖缁撴灉绫诲瀷涓篸ate
as
v_resultdate;--澹版槑杩斿洖缁撴灉鍙橀噺
begin
ifp_num=11
thenv_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'mm');--链链埚埯
elsifp_num=12
thenv_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'q');--链瀛e埯
elsifp_num=13
thenv_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'yyyy');--链骞村埯
elsifp_num=21
thenv_result:=last_day(to_date(p_yyyymmdd,'yyyy-mm-dd'));--链链堟汤
elsifp_num=22
thenv_result:=last_day(add_months(trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'q'),2));--链瀛e害链
elsifp_num=23
thenv_result:=last_day(add_months(trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'yyyy'),11));--链骞存汤
elsifp_num=31
thenv_result:=add_months(trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'mm'),-1);--涓婃湀鍒
elsifp_num=32
thenv_result:=add_months(trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'q'),-3);--涓婂e埯
elsifp_num=33
thenv_result:=add_months(trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'yyyy'),-12);--涓婂勾鍒
elsifp_num=41
thenv_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'mm')-1;--涓婃湀链
elsifp_num=42
thenv_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'q')-1;--涓婂f汤
elsifp_num=43
thenv_result:=trunc(to_date(p_yyyymmdd,'yyyy-mm-dd'),'yyyy')-1;--涓婂勾链
else
raise_application_error(-20001,'p_num鍙傛暟璇存槑涓嶅瓨鍦锛');--鍏跺畠鍙傛暟鎶涘嚭寮傚父
endif;
returnv_result;--杩斿洖缁撴灉
endfunc_date;
/
璋幂敤鍑芥暟锛
selectfunc_date(20161219,11)fromal;
C. 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日的付款流水有单笔交易出现多张小票号的情况的小票号
这个要看一下你的表结构是什么样的啊?
D. 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()
E. SQL中获取当前日期的函数怎么写(只要**月**日)
1、使用getdate获取当正简前日期。
2、用datename 分别获取月份举仿裤和日。
3、系统标准日期格大陵式没有**月**日,所以使用连接符'+',自定义格式。
F. SQL SERVER查询时间是一年中第几周的函数
1、获取当前系统数据库的日期和时间,可以利用函数GETDATE(),select GETDATE()。
G. SQL中的TO_CHAR与TO_DATE分别是怎么用的
TO_CHAR 是把日期或数字转换为字符串;
TO_DATE 是把字符串转换为数据库中得日期类型转换函数;
TO_NUMBER 将字符转化为数字;
一、TO_CHAR
使用TO_CHAR函数处理数字
TO_CHAR(number,'格式')
TO_CHAR(salary,’$99,999.99’);
使用TO_CHAR函数处理日期
TO_CHAR(date,’格式’);
二、TO_NUMBER
使用TO_NUMBER函数将字符转换为数字
TO_NUMBER(char[,'格式'])
三、TO_DATE
使用TO_DATE函数将字符转换为日期
TO_DATE(char[,'格式'])