2017-02-20 2 views
0

Ich habe Tabelle Kunden:Ausgangsdaten ab dem Zeitpunkt der Aktivierung von mehr als einem Jahr

CREATE TABLE clients (
id INT AUTO_INCREMENT NOT NULL, 
tariff VARCHAR(255) NOT NULL NULL, 
validity VARCHAR(255) NOT NULL, 
phoneNumber VARCHAR(255) NOT NULL , 
PRIMARY KEY(id) 
) ENGINE=InnoDB CHARACTER SET=UTF8; 

INSERT INTO clients (id,tariff,validity,phoneNumber) VALUES (1,"tariff1","10-02-2015","380938474271"); 
INSERT INTO clients (id,tariff,validity,phoneNumber) VALUES (2,"tariff1","10-02-2016","380938474272"); 
INSERT INTO clients (id,tariff,validity,phoneNumber) VALUES (3,"tariff2","12-01-2017","380938474273"); 
INSERT INTO clients (id,tariff,validity,phoneNumber) VALUES (4,"tariff3","10-01-2017","380938474274"); 
INSERT INTO clients (id,tariff,validity,phoneNumber) VALUES (5,"tariff3","11-02-2017","380938474275"); 

Mein Feld Gültigkeit ist ein Datum der Aktivierung. Wie kann ich aus dieser Tabelle ein Feld mit Aktivierungsdatum von mehr als einem Jahr auswählen? Beispielsweise ist es für diese Tabelle werden die Kunden mit der ID 1 und 2

+1

Warum speichern Daten in einer varchar Säule? Hat MySQL keinen richtigen Datumsdatentyp? – jarlh

+0

Speichern Sie keine Daten als 'varchar' und verwenden Sie kein funky Format von' mm-dd-yyyy', da dies später nur Probleme verursachen kann. –

+0

ok. Ich verwende das Datetime-Format. Ich versuche es: SELECT * FROM 'clients' WO (activation_date> = NOW() UND activation_date <= NOW() + INTERVALL 365 DAY) Aber es funktioniert nicht –

Antwort

2

Sie zu einem geeigneten Zeitpunkt konvertieren, sollten Sie Wert VARCHAR- und die Prüfung, ob < von jetzt

Unter 1 Jahr ist
select * from clients 
where str_to_date(validity , '%d-%m-%Y') < date_sub(now(), INTERVAL 1 YEAR) 
+0

Er sagte, es sollte ID 1 und 2 wählen. Dies wird nur ID 1 auswählen. Es ist nicht klar, was seine Frage ist. – Barmar

+0

@Barmar .. Now() - 1 Jahr sollte Zeilen 1 und 2 zurückgeben – scaisEdge

+0

Zeile 2 ist erst vor 5 Monaten, Ihre Abfrage gibt Zeilen vor mehr als 1 Jahr zurück. – Barmar

Verwandte Themen