1. 程式人生 > >Sql 時間條件查詢語句

Sql 時間條件查詢語句

--查詢當天:   
select * from info where DateDiff(dd,datetime,getdate())=0   
  
--查詢24小時內的:   
select * from info where DateDiff(hh,datetime,getDate())<=24   
  
--info為表名,datetime為資料庫中的欄位值  

--查詢當天:
select * from info where DateDiff(dd,datetime,getdate())=0

--查詢24小時內的:
select * from info where DateDiff(hh,datetime,getDate())<=24

--info為表名,datetime為資料庫中的欄位值



--查詢當天記錄另類的方法   
Select *   
FROM j_GradeShop   
Where (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')   
       AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)   
orDER BY GAddTime DESC   

--查詢當天記錄另類的方法
Select *
FROM j_GradeShop
Where (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') 
      AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)
orDER BY GAddTime DESC



DATEDIFF 函式:

語法:


DATEDIFF ( datepart , startdate , enddate )

備註:

enddate 減去 startdate。如果 startdate 晚於 enddate,則返回負值。

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

跨分鐘、秒和毫秒等邊界計算的方法使得 DATEDIFF 指定的結果在所有資料型別中均一致。結果是帶正負號的整數值,它等於跨第一個和第二個日期間的 datepart 邊界數。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數是 1。



可以再MSSQL中測試:
Sql程式碼

--兩個時間差剛好是24   
--列印的方式   
print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')   
   
--查詢的方式   
print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')  

--兩個時間差剛好是24
--列印的方式
print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')

--查詢的方式
print dateDiff(hh,'2009-1-1 0:0:0','2009-1-2 0:0:0')


Sql程式碼

--本月記錄   
Select * FROM 表 Where datediff(month,[dateadd],getdate())=0   
   
--本週記錄   
Select * FROM 表 Where datediff(week,[dateadd],getdate())=0   
   
--包括本年這些查詢方式是一樣的   
    

--本月記錄 
Select * FROM 表 Where datediff(month,[dateadd],getdate())=0

--本週記錄 
Select * FROM 表 Where datediff(week,[dateadd],getdate())=0

--包括本年這些查詢方式是一樣的



sql server中的時間函式


1.   當前系統日期、時間
     select getdate()  



2. dateadd   在向指定日期加上一段時間的基礎上,返回新的 datetime 值
    例如:向日期加上2天
    select dateadd(day,2,'2004-10-15')   --返回:2004-10-17 00:00:00.000



3. datediff 返回跨兩個指定日期的日期和時間邊界數。
    select datediff(day,'2004-09-01','2004-09-18')    --返回:17



4. datepart 返回代表指定日期的指定日期部分的整數。
   Select DATEPART(month, '2004-10-15')   --返回 10



5. datename 返回代表指定日期的指定日期部分的字串
    Select datename(weekday, '2004-10-15')   --返回:星期五



6. day(), month(),year() --可以與datepart對照一下

select 當前日期=convert(varchar(10),getdate(),120)
,當前時間=convert(varchar(8),getdate(),114)

select datename(dw,'2004-10-15')

select 本年第多少周=datename(week,'2004-10-15')
       ,今天是周幾=datename(weekday,'2004-10-15')
  


函式     引數/功能
GetDate( )     返回系統目前的日期與時間
DateDiff (interval,date1,date2)     以interval 指定的方式,返回date2 與date1兩個日期之間的差值 date2-date1
DateAdd (interval,number,date)     以interval指定的方式,加上number之後的日期
DatePart (interval,date)     返回日期date中,interval指定部分所對應的整數值
DateName (interval,date)     返回日期date中,interval指定部分所對應的字串名稱

引數 interval的設定值如下:


值     縮 寫(Sql Server)     Access 和 ASP     說明
Year     Yy     yyyy     年 1753 ~ 9999
Quarter     Qq     q       季 1 ~ 4
Month     Mm     m       月1 ~ 12
Day of year     Dy     y     一年的日數,一年中的第幾日 1-366
Day     Dd     d       日,1-31
Weekday     Dw     w     一週的日數,一週中的第幾日 1-7
Week     Wk     ww     周,一年中的第幾周 0 ~ 51
Hour     Hh     h       時0 ~ 23
Minute     Mi     n     分鐘0 ~ 59
Second     Ss     s     秒 0 ~ 59
Millisecond     Ms     -     毫秒 0 ~ 999

access 和 asp 中用date()和now()取得系統日期時間;其中DateDiff,DateAdd,DatePart也同是能用於Access和asp中,這些函式的用法也類似

舉例:
1.GetDate() 用於sql server :select GetDate()

2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值為 514592 秒
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值為 5 天

3.DatePart('w','2005-7-25 22:56:32')返回值為 2 即星期一(週日為1,週六為7)
DatePart('d','2005-7-25 22:56:32')返回值為 25即25號
DatePart('y','2005-7-25 22:56:32')返回值為 206即這一年中第206天
DatePart('yyyy','2005-7-25 22:56:32')返回值為 2005即2005年

相關推薦

Sql 時間條件查詢語句

--查詢當天:    select * from info where DateDiff(dd,datetime,getdate())=0       --查詢24小時內的:    select * from info where DateDiff(hh,datetime,getDate())<=24 

sql 時間比較 查詢語句

1 查詢時間段: 則直接欄位 大於 或小於該時間段 即可 select * from t_person where born >= '2000-01-01' and  born <= '2017-01-01'  或者用 

java加mysql按時間條件查詢sql語句

java程式碼如下: Date date=new Date(); SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd"

Python 執行sql條件查詢語句速度很慢的解決方法

問題描述 今天寫程式碰到一個問題,程式剛開始執行的好好的,到了後面,資料庫中的檔案越來越多的時候,程式執行開始變慢,到了後來, 一條條件查詢語句,竟然要用一分鐘之久,要知道只有幾萬條資料(雖然資料內容很大) 解決方法 這個問題,困擾我好久,我之前一直在優化自

sql 時間範圍查詢條件

--一年內註冊查詢 select * from User where datediff(year,Createdate,getdate())=0 --一月內註冊查詢 select * from User where datediff(month,Createdate,g

使用jdbc拼接條件查詢語句時如何防止sql註入

拼接 微信 array void jpg nts from 比較 怎麽辦 本人微信公眾號,歡迎掃碼關註! 使用jdbc拼接條件查詢語句時如何防止sql註入 最近公司的項目在上線時需要進行安全掃描,但是有幾個項目中含有部分老代碼,操作數據庫時使用的是jdbc,並且竟然

qt sql多重條件查詢簡便方法

where rom 轉載 brush qstring 解決方案 判斷語句 多重 oca 轉載請註明出處:http://www.cnblogs.com/dachen408/p/7457312.html 程序設計過程中,經常要涉及到查詢,並且有很多條件,且條件可為空,如果逐個判

SQL數據查詢語句(一)

delete 紅色 cnblogs col mage 列名 http font 根據 本文所用數據庫為db_Test,數據表為Employee 一.SELECT語句基本結構 語句語法簡單歸納為: SELECT select_list [INTO new_table_name

mysql sql分頁查詢語句

mysql select body from 記錄 condition rom col mysq SELECT * FROM ‘table‘ ORDER BY ‘condition‘ DESC LIMIT ‘開始索引‘,‘記錄數‘ mysql sql分頁查詢語句

關於sql--時間範圍查詢重疊

tar 沖突 HERE sel blog 產生 tps tails 重疊 1.常常碰到要校驗數據範圍是否存在重疊沖突的情況,典型的場景是房間預訂。假如房間A已經有9月1日-9月10日的預訂記錄,當其它客人再來預訂時,系統必須判斷,不能與這個日期範圍產生重疊。有四種情況會產生

SQL復雜查詢語句-SELECT * FROM cs WHERE score>70 GROUP BY s_id HAVING COUNT(*)>1

規範 des 刪除索引 表數 _id 需求 null rop 其他 如果同時存在where,group by,的時候的執行順序應該是這樣的: 1,首先where後面添加條件把數據進行了過濾,返回一個結果集 2,然後group by將上面返回的結果集進行分組,返回一個結果集

SQL 的基本查詢語句

1---模糊查詢 執行:select * from waimai.user where nickname like'%郭新%' 2--統計個數 執行:SELECT COUNT (* )    FROM 學生表 執行:SELECT COUNT (* )   as &

mysql按照時間條件查詢 忽略是時分秒查詢

資料庫儲存的是2018-11-06 12:22:23這種格式資料然後頁面查詢條件是>=2018-11-06和<=2018-11-06,想把6號的資料都查詢出來但是因為有時分秒導致<=2018-11-06不成立;所以查不出資料1:格式化資料庫日期date_format(b.CREATE_TIM

C# EF+Linq & Lambda多條件查詢語句

1.Linq單條件查詢 var xxfDate = from u in dbContext.Customer                          

MySQL根據時間條件查詢資料

有時我們面要統計一下資料庫中指定日期的資料,如常用的,今天,昨天,明天,本週、上週、本月、上個月份的資料,還有對日期的加減, 除了我們可以使用strtotime來算還可以參考下面方法。   SQL減去指定天數 SELECT * from 表名 where DATE

Mysql按時間條件查詢當天、本週、本月,上一個月的資料

只查詢今天的某些資料:   select * from 表名 where to_days(時間欄位名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 時間欄位名) <=

django 與 資料相關的條件查詢語句 (F物件,Q物件...)

條件運算子 1) 查詢等 exact:表示判等。 例:查詢編號為1的圖書。 list=BookInfo.objects.filter(id__exact=1) # 可簡寫為: list=BookInfo.objects.filter(id=1) 2) 模糊查詢

linux find根據時間條件查詢檔案

find / -amin -10 # 查詢在系統中最後10分鐘訪問的檔案find / -atime -2 # 查詢在系統中最後48小時訪問的檔案find / -mmin -5 # 查詢在系統中最後5分鐘裡修改過的檔案find / -mtime -1 #查詢在系統中最後24小時

C# SQL條件查詢技巧

            #region 多條件搜尋時,使用List集合來拼接條件(拼接Sql)             StringBuilder sql = new StringBuilder("select * from PhoneNum");             List<string&g

Mybatis中動態sql(多條件查詢)

動態SQL指:通過mtbatis提供的各種標籤實現動態拼接sql語句 例如: <!--動態SQL語句,多條件查詢--> <select id="findSomeByMore" re