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[,'格式'])