『壹』 如何用sql語句篩選時間最新的數據
你的表中必須有一列用於存儲每條記錄添加時間或更新時間的欄位,否則無法篩選!!!
你可以在表中增加一列,如update_time,類型為datetime,把默認值設定為getDate(),插入的時候系統就會自動填充上當前時間,後插入的數據時間就會更後。
然後你篩選最新數據時就可以這樣:
select id from tb_test
order by update_time desc
附帶說一句,取最上面或者TOP最前的都不一定是最新的,最新插入的數據也有可能排在中間和最後,位置取決於你的SQL語句,要查最新必須有一個欄位來記錄時間才行。
『貳』 sql 查資料庫中時間最新的一條記錄
select*,max(create_time)froma
wherecreate_time<="2017-03-2919:30:36"
groupbyuser_id
這句可以理解為將結果集根據user_id分組,每組取time最大一條記錄。這樣就很好的實現了批量查詢最近記錄,並且僅僅需要遍歷一次表,即使在數據量巨大的情況下也可以在很短的時間查出結果。
(2)sql中選擇最新日期擴展閱讀:
SQL數據查詢語句
1、語句語法簡單歸納為:
SELECTselect_list[INTOnew_table_name][FROMtable_source]
[WHEREsearch_condition][GROUPBYgroup_by_expression]
[HAVINGsearch_condition][ORDERBYorder_expression[ASC|DESC]]
2、WITH子句用於指定臨時命名的公用表達式,在單條語句(SELECT、INSERT、UPDATE、DELETE)的語句執行范圍內定義。
3、LIKE關鍵字
用於模糊查詢,通配符有%、_、[]、[^]
%:後面可以跟零個或多個字元
_:匹配任意單個字元
[]:查詢一定范圍內的單個字元,包括兩端數據
[^]:表示不在一定范圍內的單個字元,包括兩端數據
『叄』 sql如何提取最新的時間記錄
你要取最新的時間記錄 只要取得最大的時間就行了 max(時間欄位)
如果用oracle 就得轉化一下時間 todate().
『肆』 sql 查詢問題:如何獲取表中最新時間
年,月,日,時,分,秒,你是分在不同的欄位存的是吧,那麼,年份是最大的單位是吧,年份數值最大的就是時間最新的,後邊的月,日等等就都可以省略了不是。如果年份相同,那麼再比較月份最大的,如果月份相同再比較.....費話太多了,省略之,咱說重點
MySQL語句:
SELECT * FROM `grmc_awst_ele` ORDER BY `c_oyyyy` DESC,`c_omm` DESC,`c_odd` DESC,`C_OHH` DESC,`C_OMN` DESC,`C_OSS` DESC LIMIT 1
然後你括弧里的東西「(年 datatime)」數據類型是datatime嗎?為什麼你把年,月,日,時,分,秒存在不同的欄位卻使用這種數據類型,滑稽吧。
我敢打保證,我上邊的語句在Mysql下邊一定能起到你要的效果,但是不知道你的sql是什麼。
『伍』 sql 查詢問題:如何獲取表中最新時間
select * from grmc_awst_ele order by to_date(c_oyyyy||c_omm||c_odd||c_ohh||c_omin||c_oss,'yyyymmddhh24miss') desc;
具體時間格式自己調整。
『陸』 sql 如何選擇最近的日期
呵呵,midasblesshj的方法其實第一種是好的,但是第二種要是把abs函數去掉了那就壞了,因為去掉了abs,無論你怎樣做,取到的永遠都是最小日期的值,當查詢日期比20090605大時,結果正確,但是比他小時,結果就是錯了的,因為min函數可以是負的,最小的負數則離目標結果很遠了。
正確的應該就是第一個語句,要去除重復加distinct:
select distincr * from 表 where abs(datediff(d,date,'20090605'))=(select min(abs(datediff(d,date,'20090605')))from 表)
但是又正如midasblesshj所說,有個問題,當查詢'20090605'時,離他最近的有可能有兩個值,比如'20090604'和'20090606'。
所以這就需要樓主做取捨了 如果兩個都要,則什麼都不加,只要一個,則利用top和order by :
select distincr top 1 * from 表 where abs(datediff(d,date,'20090605'))=(select min(abs(datediff(d,date,'20090605')))from 表) order by date
當然 是要大的還是小的那個,就使用asc和desc來取吧