sql日期相等
⑴ sql 日期比較查詢
用or,這里用and的話,意思是要查的日期即要比12.11大,又要比10.20小,就像是要找一個即要比5大又要比3小的數,這樣的數是不存在 的
⑵ sql 語句中如何比較當前時間與指定時間是否相同
代碼的思路:
兩個時間的相差的秒數,當等於0時,說明兩日期相同。
getdate()表示獲取當前系統時間
sql 語句中比較當前時間與指定時間是否相同參考代碼如下:
select datediff(second,'2012-12-15 16:54:00',getdate())
(2)sql日期相等擴展閱讀:
GETDATE() 函數從 SQL Server 返回當前的時間和日期。
語法:GETDATE()
實例如下
使用下面的 SELECT 語句:
SELECT GETDATE() AS CurrentDateTime
結果:
CurrentDateTime
2008-12-29 16:25:46.635
注釋:上面的時間部分精確到毫秒。
⑶ SQL語句中怎樣比較兩個日期的大小
慣例,在等號左邊盡量不要有對欄位的運算,所以一般用法有:
1、判斷其是否在某個日期區間:
Where CheckDate Between '2013-01-01' And '2013-01-31'
這個方法也可用於加幾天是多少,或減幾天是多少:
把起迄日期參數化,原CheckDate要加的,那就變成@BeginDate加,減也同理~
2、判斷其是否大於某天:
Where CheckDate >'2013-01-01' 或大於等於:Where CheckDate >='2013-01-01'
小於某天
Where CheckDate <'2013-01-01' 或小於等於:Where CheckDate <='2013-01-01'
3、判斷其是否等於某天:
如果Check欄位不帶時間,只是年月日,那直接等於就可以了;
Where CheckDate ='2013-01-01'
如果CheckDate欄位是攜帶時間的就會有差別;這一點,在上述所有方法中都需要注意
eg:CheckDate 實際存儲值可能是: 20130101 08:50:54:000 或 20130101 22:50:54:000
這時直接用上面的等號是抓不到的,因此或改寫成:
Where CheckDate >= '2013-01-01' And CheckDate < '2013-01-02'
當然也可以把'2013-01-01',定義為參數@Date DateTime
Where CheckDate >= @Date And CheckDate < @Date+1
不建議在等號左邊使用函數或計算對表欄位進行計算。
以上是兩個日期的判斷,另外有些日期處理函數可以了解一下:
DATEDIFF ( datepart , startdate , enddate )
返回指定的 startdate 和 enddate 之間所跨的指定 datepart 邊界的計數(帶符號的整數)。
eg:
Select DateDiff(DAY,'20130101','20130105')
1號到5號相差4天,輸出結果為4
常用的datepart 有:
datepart 縮寫
year yy, yyyy 年
month mm, m 月
day dd, d 日
week wk, ww 周
hour hh 時
minute mi, n 分
second ss, s 秒
DATEADD(datepart, number, date)
將表示日期或時間間隔的數值與日期中指定的日期部分相加後,返回一個新的 DT_DBTIMESTAMP 值。number 參數的值必須為整數,而 date 參數的取值必須為有效日期。
eg:
Select DATEADD(DAY,1,'20130101')
1號加1天就是2號;輸出結果為 『2013-01-02』
Number可以是負數就變成減幾天
DATEADD(datepart, number, date)
將表示日期或時間間隔的數值與日期中指定的日期部分相加後,返回一個新的 DT_DBTIMESTAMP 值。number 參數的值必須為整數,而 date 參數的取值必須為有效日期。
eg:
Select DATEPART(DAY,'20130101')
返回datepart描述的部分,輸出結果為 1
⑷ sql 判斷日期是否相等問題
我看你的演算法寫得沒有什麼毛病。即使是這句 也是字元串與字元串的比較。
寫不寫這句都一樣,只能說明,所查的數據中本來就 不存在 日期與tot.O_Date的日期相同,而時間在 17:00到18:00之間的數據。
-------------
做個試驗就可以看出一些東東來了:
加上這句「convert(varchar(10),nnp.INTIME,120) <>convert(varchar(10),tot.O_Date,120) 」是為了剔除一些數據,那就可以先查一些究竟是哪些數據將被剔除嘛,只要在那語句中放上這句,但把其中的「<>」改為「=」。
查一下看,結果究竟是什麼數據。
結果可能是空的,那就說明加了這句與不加對現有數據來說是一樣的;
結果也可能有數據,但結果與你想像的不同,那就要查一下前面的語句了,比如臨時表#NotnullPunch 以及表 tb_Overtime中的數據情況。
⑸ sql 查詢日期比較問題
可以將status列設為計算列,設定條件為datediff(second,@date,getdate())
簡單就是這樣的思路了
⑹ sql中怎樣讓當前月份和資料庫里的當前時間相等
不太明白你的意思,是顯示資料庫中月份和當前月份相等的數據嗎?
select * from table
where datediff(m,InputDatatime,getdate()) = 0
⑺ sql語句中如何進行日期比較
datediff(d,需要比較的日期,getdate()),datediff返回兩個日期之間的時間差,getdate()獲取當天系統時間
⑻ 求助SQL如何判斷兩個表裡的日期是否相同
根據給的鏈接地址,兩表相同的列應該是jh,如果是要A表中的所有數據以及B表中的某些數據不妨用外聯好了
select * from a left join b on a.jh= b.jh where to_char(a.rq,"yyyy-MM-dd")=to_char(b.rq,"yyyy-MM-dd"),這樣行不行呢?
⑼ 如何在SQL中比較兩個時間相等
首先這倆欄位是時間類的欄位,或者至少你得保證按時間格式存儲的文本
datediff(day,datetime1,datetime2) =0
精確到day是不是一樣的
datediff(hh,datetime1,datetime2) =0
精確到小時是不是一樣的
。。。
⑽ sql語句中怎麼比較日期。
... where IPTime between '"&yesterday&"%' and '"&date()&"%'"....
只是昨天的