當前位置:首頁 » 編程語言 » sql日期加減

sql日期加減

發布時間: 2022-11-19 09:34:00

sql里日期怎麼加減

DATEDIFF: 返回跨兩個指定日期的日期邊界數和時間邊界數, 語法:DATEDIFF ( datepart , startdate , enddate ) 用 enddate 減去 startdate
註:datepart 指定應在日期的哪一部分計算差額的參數,其日期相減時,只關注邊界值,例SELECT DATEDIFF(YEAR,'2008-12-31','2009-1-1') 返回 1

DATEADD : 返回給指定日期加上一個時間間隔後的新 datetime 值。 語法:DATEADD (datepart , number, date )
注: datepart 指定要返回新值的日期的組成部分
number 使用來增加 datepart 的值。正數表示增加,負數表示減少,如果是小數則忽略小數部分,且不做四捨五入。

⑵ sql語句怎麼來對日期進行相加減

直接加減就可以,日期型就是長整型的數據。

⑶ sql里日期怎麼加減

select * from tableName
where 日期欄位 between '2012-1-23' and '2012-1-31'
只要設置范圍就可以了,上周你就寫上周的日期范圍,查詢上月、上年的方法類似

⑷ sql查詢中日期加減的問題

他們說的那個dateadd 不是oracle的函數。是sqlserver 的,你要前一天的
可以
SELECT SYSDATE-1 FROM DUAL 直接減一就是默認減一天。就算是1號 也會變成上個月的最後一天

⑸ sql date時間加減幾天幾小時

DATEADD() 函數在日期中添加或減去指定的時間間隔。
日:
在當前日期上加兩天
select DATEADD(day,2,'2014-12-30') 2015-01-01
select DATEADD(dd,2,'2014-12-30')

月:
在當前日期上加兩個月
select DATEADD(mm,2,'2014-12-30') 結果:2015-02-28
select DATEADD(MONTH,2,'2014-12-30') 結果:2015-02-28

年:
在當前日期上加兩年
select DATEADD(yy,2,'2014-12-30') 結果:2016-12-30
select DATEADD(year,2,'2014-12-30') 結果:2016-12-30

語法
DATEADD(datepart,number,date)
date 參數是合法的日期表達式。number
是您希望添加的間隔數;對於未來的時間,此數是正數,對於過去的時間,此數是負數。

datepart 參數可以是下列的值:
datepart 縮寫
年 yy, yyyy
季度 qq, q
月 mm, m
年中的日 dy, y
日 dd, d
周 wk, ww
星期 dw, w
小時 hh
分鍾 mi, n
秒 ss, s
毫秒 ms
微妙 mcs
納秒 ns
如果,您認為閱讀這

⑹ sql里日期怎麼加減

問題一:SELECT DATEDIFF( Day, '2008.08.25', '2008.09.01' )

問題二:SELECT DATEDIFF( Second, 2009-8-25 12:15:12', 2009-9-1 7:18:20') --返回相差秒數
或者
SELECT DATEDIFF( Minute, 2009-8-25 12:15:12', 2009-9-1 7:18:20') --返回相差分鍾數
或者
SELECT DATEDIFF( Hour, 2009-8-25 12:15:12', 2009-9-1 7:18:20') --返回相差小時數

問題三:SELECT DATEDIFF( Day, 2009-8-25 12:15:12', 2009-9-1 7:18:20')

附:
DATEDIFF 函數使用說明:
返回跨兩個指定日期的日期和時間邊界數。

語法
DATEDIFF ( datepart , startdate , enddate )

參數
datepart

是規定了應在日期的哪一部分計算差額的參數。下表列出了 Microsoft�0�3 SQL Server�6�4 識別的日期部分和縮寫。

日期部分 縮寫
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

startdate

是計算的開始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字元串的表達式。

因為 smalldatetime 只精確到分鍾,所以當用 smalldatetime 值時,秒和毫秒總是 0。

如果您只指定年份的最後兩位數字,則小於或等於"兩位數年份截止期"配置選項的值的最後兩位數字的數字所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位數字的數字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2049(默認),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數的年份。

有關時間值指定的更多信息,請參見時間格式。有關日期指定的更多信息,請參見 datetime 和 smalldatetime。

enddate

是計算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字元串的表達式。

返回類型
integer

注釋
startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負值。

當結果超出整數值范圍,DATEDIFF 產生錯誤。對於毫秒,最大數是 24 天 20 小時 31 分鍾零 23.647 秒。對於秒,最大數是 68 年。

計算跨分鍾、秒和毫秒這些邊界的方法,使得 DATEDIFF 給出的結果在全部數據類型中是一致的。結果是帶正負號的整數值,其等於跨第一個和第二個日期間的 datepart 邊界數。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數是 1。

示例
此示例確定在 pubs 資料庫中標題發布日期和當前日期間的天數。

USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO

⑺ sql 時間加減

算一下天數,減一下就行了。或者直接在資料庫裡面改

⑻ sql語句怎麼來對日期進行相加減

在sql server里可以使用:
where start_date <=
DateAdd(d,1,to_date('2005-12-09','yyyy-mm-dd'))
and completion_date >=
to_date('2005-12-09', 'yyyy-mm-dd') ;

oracle中沒有定義和sql server中一樣的DateAdd函數,
oracle可以通過interval 'n' year/month/day/hour/minute/second/second(p,s)
的方式來增減時間
下面是自己在oracle中寫的DateAdd函數
函數調用基本同sql server一樣, 不過datepart部分需要以字元串的方式輸入, 即
DateAdd(d,1,to_date('2005-12-09','yyyy-mm-dd'))
要改為
DateAdd('d',1,to_date('2005-12-09','yyyy-mm-dd'))

函數定義如下函數中的注釋是datepart的新說明, 與sql server中的略有不同)
create or replace function DATEADD( datepart varchar2, num number, indate date ) return date is
Result date;
v_sql varchar2(1000);
v_datepart varchar2(30);
v_ms varchar2(13);
begin
v_datepart := lower(datepart);
/*
Datepart Abbreviations
year yy, y
quarter qq, q
month mm, m
day dd, d
week wk, w
hour hh, h
minute mi, n
second ss, s
millisecond ms
*/
case
when v_datepart in ('year','yy','y') then
v_sql := 'select :1 + interval '''||num||''' year from al';
when v_datepart in ('quarter','qq','q') then
v_sql := 'select :1 + (interval ''3'' month) * '||num||' from al';
when v_datepart in ('month','mm','m') then
v_sql := 'select :1 + interval '''||num||''' month from al';
when v_datepart in ('week','wk','w') then
v_sql := 'select :1 + (interval ''7'' day) * '||num||' from al';
when v_datepart in ('day','dd','d') then
v_sql := 'select :1 + interval '''||num||''' day from al';
when v_datepart in ('hour','hh') then
v_sql := 'select :1 + interval '''||num||''' hour from al';
when v_datepart in ('minute','mi','n') then
v_sql := 'select :1 + interval '''||num||''' minute from al';
when v_datepart in ('second','ss','s') then
v_sql := 'select :1 + interval '''||num||''' second from al';
when v_datepart in ('millisecond','ms') then
v_ms := to_char(num/1000,'fm999999990.000');
v_sql := 'select :1 + interval '''||v_ms||''' second(9,3) from al';
else
RAISE_APPLICATION_ERROR(-20001, ''''||datepart||''' is not a recognized dateadd option.' );
end case;

execute immediate v_sql into Result using indate;

return(Result);

EXCEPTION
WHEN OTHERS THEN
RAISE ;

end DATEADD;

⑼ SQL語句問題(關於日期加減與欄位加減)

select * from KC where 生產日期 < dateadd('d',0-保質期,now())
根據"保質期"中存儲的是天數還是日數來選擇dateadd的計算類型,dateadd具體用法可以參照資料庫使用說明.

熱點內容
追劇腳本 發布:2025-01-15 07:00:39 瀏覽:444
c語言字元串庫函數 發布:2025-01-15 06:54:49 瀏覽:524
c語言的工作 發布:2025-01-15 06:50:50 瀏覽:520
口語交際訪問 發布:2025-01-15 06:44:13 瀏覽:328
編程少兒學習 發布:2025-01-15 06:39:03 瀏覽:502
伺服器搭建怎麼設置 發布:2025-01-15 06:39:01 瀏覽:151
格魯爾要什麼配置 發布:2025-01-15 06:26:56 瀏覽:855
linux下安裝jdk 發布:2025-01-15 06:03:05 瀏覽:545
伺服器拷數據到電腦 發布:2025-01-15 05:58:19 瀏覽:481
android的單例模式 發布:2025-01-15 05:50:55 瀏覽:928