① 在sql中比較時間的大小怎麼做在線等
您好:
還以為有人會搶答。
直接大於號小於號就可以比較了。
時間越晚,比較的時候值越大。
SELECT*FROM表WHERE時間欄位>'2017-01-01'
以上是一個簡單的例子,請參考。
② SQL 時間比較
有這么一個古老的傳說:
相傳,在遠古時期,豬頭設計者們定義日期類型的時候,一共制定了兩套:Date 和 Datetime 類型,
Date是日期的,如:2010-3-15
Datetime日期及時間的,如:2010-3-15 12:01:56:469
假設你要比較的兩個時間都是Datetime類型數據,它們不相等的可能性也許是99.99%,因為不僅日子要一樣,而且小時、分鍾、秒、微秒都要相等,那才算是一致。
假設交易日期這個數據是今天上午產生的,開始日期是今天下午生成的,那麼,肯定不相等了。
所以你要讓同一天(不管幾點鍾)的相關聯,那就用個函數吧,辦法太多了:
①:將Datetime轉換為Data再比較,where條件:
convert(date,a.交易記賬日期) >= convert(date,b.開始日期)
例如:convert(date, 2010-3-15 19:25:30) 就會返回date型的 2010-3-15 00:00:00,小時分鍾什麼的全是0了,所以同一天的就相等了
②:將它們按你要求的格式轉換為字元串後再比較,where條件:
convert(varchar,a.交易記賬日期,102) >= convert(varchar,b.開始日期,102)
例如:convert(varchar, 2010-3-15 19:25:30, 102) 就會返回字元型的2010.3.15,小時分鍾什麼的全甩掉了
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
請根據這個傳說對號入座,希望有所提醒,如果不是這個原因,咱們再研究~
③ sql時間對比問題
where dateadd(day,天數,createtime)<getdate()
where dateadd(month,月數,createtime)<getdate()
④ sql資料庫時間如何比較
SELECT DATEDIFF(DAY, (SELECT table.dtime FROM table WHERE ID=1 )
,GETDATE())
//
(SELECT table.dtime FROM table WHERE ID=1 )
是你要從資料庫中提取的時間,重新自定義一下
GETDATE()是今天的日期
總的就是表示從資料庫里提取的時間到今天的差距
如果是想比較資料庫和資料庫里的時間,就按照上面的方法再寫一次
⑤ sql時間如何比較
這里的4年應該用月份來計算比較合理,超過4年就是使用月份大於48個月
不超過4年就是小於等於48個月。
使用超過4年的
select * from 表名
where datediff(month,[開始使用日期],getdate())>48
使用不到4年的
select * from 表名
where datediff(month,[開始使用日期],getdate())<=48
⑥ SQL里時間怎麼比較
1\如果是指90天
select *
from table
where datediff(day,time,getdate())<=90
或者
select *
from table
where time>=dateadd(day,-90,getdate())
2\如果是3月
select *
from table
where time>=dateadd(month,-3,getdate())
3\如果是當前月往前推兩個自然月的1號算起
select *
from table
where time>=Dateadd(mm,datediff(mm,0,getdate())-2,0)
⑦ sql中,怎麼對時間進行比較
這個估計是日歷時間,一般就是從January 1, 1970, UTC午夜開始到現在所經過的秒數
你可以用DATEADD函數在秒上加上這個數來把它轉化為它對應的datetime類型所表示的時間
比如:
select DATEADD(ss, 1257322946, '1970-1-1 00:00:00')
返回
-----------------------
2009-11-04 08:22:26.000
(1 row(s) affected)
⑧ 在sql兩個日期型如何比較早晚
思路:
sql@kokooa>select * from test038;
A B C
-------------- -------------- --------------
18-9月 -09 09-10月-09 09-8月 -08
sql@kokooa> select f from(
2 select a,b,c,(case when d-c>0 then d else c end) as f from(
3 select a,b,c,(case when a-b>0 then a else b end) as d from test038));
F
--------------
09-10月-09
這樣就求出最大日期了也就是最遲日期
⑨ Sql字元串與時間比較問題
oracle比較字元串是根據ascii碼來的,第一個字母的ascii大小比較如果相等再比較下一個,類推。
字元串和數字進行操作是會報異常的,因為類型不一樣不能進行比較。
oracle在執行sql的時候有些時候會自動轉換,比如:
select
*
from
chan_customer
cc
where
cc.customer_id
=
'1';
即使customer_id是數字型的也可以查出來,但是oracle有區分字元和數字
就是通過加不加單引號來區分。
⑩ sql 時間比較
--記錄在表是字元?
select * from table order by left(日期,charindex('月',日期)-1)*1,right(日期,charindex('月',reverse(日期))-1)*1