❶ sql="select * from SYpower where datediff(d,lasttime,getdate())=2" 我想獲得兩天內的數據。
得到當前的時間,處理當前的日期時間(當前日期時間減去2天),得到處理後的時間字元串,然後再拼接到sql語句里去。如果是我,我會這么做,笨辦法!呵呵
❷ 利用SQL語句如何獲得兩個日期之間相差的天數
用sysdate假設結束日期欄位是end_date
添加這個判斷條件:
where to_char("end_date",'YYYY') = to_char(sysdate,'YYYY') 判斷年相同
and to_char("end_date",'MM') = to_char(sysdate,'MM') 判斷月相同
and to_char("end_date",'dd') - to_char(sysdate,'dd') = 15 判斷日相同
或者:
where to_char("end_date",'YYYY-MM-DD') - to_char(sysdate,'YYYY-MM-DD')=15
(2)日期格式取兩天sql擴展閱讀:
注意事項
DATEDIFF返回跨兩個指定日期的日期和時間邊界數。
語法:DATEDIFF ( datepart , startdate , enddate )
參數:datepart
是規定了應在日期的哪一部分計算差額的參數。下表列出了 Microsoft® SQL Server™ 識別的日期部分和縮寫。
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 年。
❸ sql server高手請進 怎麼獲得距當前時間「兩天」的時間
select
dateadd(day,-2,getdate())
--兩天前
select
dateadd(day,2,getdate())
--兩天後
或者:
select
dateadd(hour,-48,getdate())
select
dateadd(hour,48,getdate())
sql
server獲取當前時間的函數是getdate()
,沒有gettime函數.
❹ sql 中指定表中某兩天的數據導出命令
指定日期可以用to_date完成
where 日期欄位>=to_date('2014-03-05 00:00:00','yyyy-mm-dd HH:mi:ss') and 日期欄位<to_date('2014-03-07 00:00:00','yyyy-mm-dd HH:mi:ss')
2014-03-05就是你指定的天,2014-03-07是說明兩天時間
不過最好先查一下你的select * from nls_session_parameters where parameter='NLS_DATE_FORMAT';,看看什麼格式的可能你的日期並不是yyyy-mm-dd的格式,相應的改變下寫法就行了
❺ 怎麼通過sql語句取 某一日期 幾天後的日期
mysql語法:SELECT DATE_ADD(NOW(),INTERVAL 3 DAY);
上面就是取3天後的當前日期
❻ 在sql中怎麼取當前日期和當前日期的前一天日期
在sql中怎麼取當前日期和當前日期的前一天日期
select dateadd(day, -1, getdate()) 減少1天。 DATEADD函數,可以增加/減少指定的小時、分、天、年、月、周等。 select dateadd(day, 2, getdate()) --增加兩天。 select dateadd(year, -2, getdate()) --減少兩年。
❼ sql如何一次取出2天的數據(有時候某些天沒數據),求思路
按照你給的說法和例子( 1號3條數據,2號沒有數據,3號2條數據,),那麼所謂的一次兩天,應該是取出1號和3號的5條數據,是這個意思吧。
假設4,5號都有數據,那麼現在是(1有數據,2沒數據,3有數據,4有數據,5有數據)其他不算,就說這五天
那麼你說的一次取出兩天的數據怎麼取?從後往前,還是從前往後,亦或是隨便取?還是多次取,每兩天的都取出來?給的需求並不是十分明確。
個人認為最大的可能是從後往前,或者某一個時間段往前或者往後。
如果是數據塊的話很好寫,定義兩個變數,兩個初始都是0,我們假設為a,b,a代表有數據天數,b代表天數。輸入當前日期(查詢日期),然後在表內對當前日期進行count計數,如果計數不為0,那麼a=a+1,b=b±1(根據向前還是向後查詢自己分配),如果計數為0,那麼只b±1,然後判斷一下a是否等於2,如果a不等於2,那麼繼續循環,直到循環出現兩個計數不為0的天,那麼a=2了,然後就能退出循環,這是查詢出的內容就是兩天的。
如果是單條sql的話,考慮到查詢的當天可能也沒有數據,比如你要查詢2號(包含)往後的兩天(一般來說是2號和3號的數據),但是2號沒有數據,所以輸出的應該是3號和4號的數據。
單獨的sql好像能寫出來,我說一個思路,開窗函數,你對找出來的數據,比如大於等於2號的數據進行排序,這個排序是開窗(oracle的話這里用rank,其他數據不知道),其他資料庫不知道)的排序,(不分組,按照日期的截取到日去排序,也就是不算具體的時間,而是1號,2號,這樣的排序)這時,3號的所有數據會被標記為1,4號的所有數據被標記為2,然後再截取排序號小於等於2的就可以了。
其他的還有,不過要麼是計數,要麼是開窗排序,而且不一定能寫出來,或者就算寫出來了,可能也比較耗費資源,估計可用性不大。
❽ 用SQL怎麼取兩個日期之間的日期
select 日期 from 表名 where 日期 between '2009-06-05' and '2009-06-08'
❾ SQL語句時間間隔怎麼查詢(只取日期)
selectto_date(to_char(z,'yyyy-mm-dd'),'yyyy-mm-dd')-to_date(to_char(w,'yyyy-mm-dd'),'yyyy-mm-dd')+1from表名
試試這樣
下邊這個貌似更簡單寫,ceil是個向上取整的函數
selectceil(z-w)+1
from表名