2017-12-11 1 views
1

Ich habe eine Tabelle wie unten.Wählen Sie ein Datum, das kleiner ist als heute

id date   value 
12 2017-12-11  250 
13 2017-12-11  256 
14 2017-11-10  300 
15 2017-11-09  400 

Ich muss eine Abfrage schreiben, wo ich das vorherige Datum von heute bekommen kann. Wie, wenn heute 2017.12.11, sollte die Abfrage nur zurückgeben

id date  value 
14 2017-11-10 300 

Bitte helfen Sie mir, wie kann ich diese bekommen.

+2

Welches Datenbanksystem verwenden Sie? – Squirrel

+1

@ Squirrel aus dem Benutzerprofil, es sieht aus wie alle seine Fragen sind über Postgresql – Hadi

+0

@Kushal LNU müssen Sie eine Technologie (sql-Server oder MySQL oder Postgresql) nur unerwünschte Tags entfernen. Es ist auch gut, die [Tour Page] (https://www.stackoverflow.com/tour) zu besuchen, um Ihr "informiertes" Abzeichen zu erhalten und mehr über diese Seite zu erfahren. – Hadi

Antwort

2

, weil die anfängliche Frage mit getaggt wurde i bereitgestellt 3 Versionen Lösung

SQL Server Version

Sie können Convert(date, getdate()) verwenden, um heute Datum (ohne Zeit zu erhalten), und mit einer einfachen Abfrage können Sie bekommen, was Sie suchen

SELECT TOP 1 * 
From MyTable 
Where [date] < Convert(date, getdate()) 
ORDER BY [date] desc 

SQLFiddle demo

PostgreSQL Version

SELECT * 
From MyTable 
Where date < current_date 
ORDER BY date desc 
limit 1 

SQLFiddle demo

MySQL Version

SELECT * 
From MyTable 
Where date < current_date 
ORDER BY date desc 
limit 1 

SQLFiddle demo

0
select * from yourtable t where t.date_value < getdate() 
Verwandte Themen