當前位置:首頁 » 編程語言 » sql語句時間怎麼減去一天
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql語句時間怎麼減去一天

發布時間: 2022-08-19 17:24:15

① 如何用sql語句獲取當前時間,並且在當前時間的基礎上減去3天的時間

1、首先最常用的就是GETDATE了,如下圖所示,直接獲得當前最新的日期。

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

日期增減計算

使用DATEADD 函數

1> SELECT '現在' AS [日期], GETDATE() AS [數據]
2> UNION ALL
3> SELECT '下一秒' AS [日期], DATEADD(ss, 1, GETDATE() ) AS [數據]
4> UNION ALL
5> SELECT '下一分' AS [日期], DATEADD(mi, 1, GETDATE() ) AS [數據]
6> UNION ALL
7> SELECT '下一小時' AS [日期], DATEADD(hh, 1, GETDATE() ) AS [數據]
8> UNION ALL
9> SELECT '明天' AS [日期], DATEADD(dd, 1, GETDATE() ) AS [數據]
10> UNION ALL
11> SELECT '下周' AS [日期], DATEADD(ww, 1, GETDATE() ) AS [數據]
12> UNION ALL
13> SELECT '下月' AS [日期], DATEADD(mm, 1, GETDATE() ) AS [數據]
14> UNION ALL
15> SELECT '下季度' AS [日期], DATEADD(qq, 1, GETDATE() ) AS [數據]
16> UNION ALL
17> SELECT '明年' AS [日期], DATEADD(yy, 1, GETDATE() ) AS [數據]
18> go
日期 數據
-------- -----------------------
現在 2011-02-11 21:27:15.750
下一秒 2011-02-11 21:27:16.750
下一分 2011-02-11 21:28:15.750
下一小時 2011-02-11 22:27:15.750
明天 2011-02-12 21:27:15.750
下周 2011-02-18 21:27:15.750
下月 2011-03-11 21:27:15.750
下季度 2011-05-11 21:27:15.750
明年 2012-02-11 21:27:15.750

(9 行受影響)

兩個日期之間的差值

1> SELECT '年' AS '日期部分', DATEDIFF(yy, '2012-12-21', GETDATE()) AS [數值]
2> UNION ALL
3> SELECT '季度' AS '日期部分', DATEDIFF(qq, '2012-12-21', GETDATE()) AS [數值]
4> UNION ALL
5> SELECT '月' AS '日期部分', DATEDIFF(mm, '2012-12-21', GETDATE()) AS [數值]
6> UNION ALL
7> SELECT '日' AS '日期部分', DATEDIFF(dd, '2012-12-21', GETDATE()) AS [數值]
8> UNION ALL
9> SELECT '周' AS '日期部分', DATEDIFF(ww, '2012-12-21', GETDATE()) AS [數值]
10> UNION ALL
11> SELECT '時' AS '日期部分', DATEDIFF(hh, '2012-12-21', GETDATE()) AS [數值]
12> UNION ALL
13> SELECT '分' AS '日期部分', DATEDIFF(mi, '2012-12-21', GETDATE()) AS [數值]
14> UNION ALL
15> SELECT '秒' AS '日期部分', DATEDIFF(ss, '2012-12-21', GETDATE()) AS [數值]
16> go
日期部分 數值
---- -----------
年 -1
季度 -7
月 -22
日 -679
周 -97
時 -16275
分 -976470
秒 -58588175

(8 行受影響)

③ 求助!把日期減一天的SQL 語句!

insert
YourTable(datetime)
values(DateDiff(dd,1,Convert.ToDateTime(textBox1.Text)))當然也百可寫個函數截取所選度擇日期控制項的日期各部分,在天段問上減一天,再把各部分和答起來!

④ 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
table
where
卡號='123'
and
datediff(mi,convert(datetime,日期
+'
'
+
時間),'2010/06/20
08:05:00')
between
-5
and
5
後面的就是日期和時間和在一起的時間
雖然這樣可以實現,但是建議把2個欄位和在一起用datetime類型

⑥ sql server 日期天數加減語句怎麼寫

問題一: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?? SQL Server?? 識別的日期部分和縮寫。
日期部分 縮寫
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查詢中日期加減的問題

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

⑧ 兩個時間相減得到一個天數的 sql語句如何寫

DateDiff 函數

返回 Variant (Long) 的值,表示兩個指定日期間的時間間隔數目。

語法

DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])

DateDiff 函數語法中有下列命名參數:

部分 描述
interval 必要。字元串表達式,表示用來計算date1 和 date2 的時間差的時間間隔
Date1□date2 必要;Variant (Date)。計算中要用到的兩個日期。
Firstdayofweek 可選。指定一個星期的第一天的常數。如果未予指定,則以星期日為第一天。
firstweekofyear 可選。指定一年的第一周的常數。如果未予指定,則以包含 1 月 1 日的星期為第一周。

設置

interval 參數的設定值如下:

設置 描述
yyyy 年
q 季
m 月
y 一年的日數
d 日
w 一周的日數
ww 周
h 時
n 分鍾
s 秒

firstdayofweek 參數的設定值如下:

常數 值 描述
vbUseSystem 0 使用 NLS API 設置。
vbSunday 1 星期日(預設值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

常數 值 描述
vbUseSystem 0 用 NLS API 設置。
vbFirstJan1 1 從包含 1 月 1 日的星期開始(預設值)。
vbFirstFourDays 2 從第一個其大半個星期在新的一年的一周開始。
vbFirstFullWeek 3 從第一個無跨年度的星期開始。

⑨ dws資料庫日期減去一天

在update或者insert的資料庫里,在那裡-1就好了。
DWS是資料庫生態,使用標准SQL,所以要減少一天的話,就需要在SQL裡面,SQL語句使用DATEADD得到一個時間加上或減去指定天數之後的時間。也適用於小時、分鍾、秒鍾等等。DATEADD()函數功能:在日期中添加或減去指定的時間間,date參數是合法的日期表達式。number是您希望添加的間隔數;對於未來的時間,此數是正數,對於過去的時間,此數是負數。往前一天,就是減少一天,-1就行。
一個DWS集群實際上是一個支持聯機分析處理方式的資料庫平台,屬於分析性的關系型資料庫。

⑩ SQL提交為當前時間,並且減一天.時間不需要精確到時分秒

不是很明白你的意思! SQL提交為當前時間,並且減一天. 是指執行SQL後,插入數據到資料庫的當前時間減一天?需要弄明白才能幫到你。