Wie kann ich das Ablaufdatum einer Kreditkarte speichern, wenn es nur aus Monat und Jahr besteht?

8

Wie speichere ich das Ablaufdatum einer Kreditkarte, wenn es nur aus Monat und Jahr besteht?

Das Datumsfeld in MySQL akzeptiert das folgende Format: JJJJ-MM-TT. Ein Ablaufdatum ohne einen Tag ist nicht ungültig, wenn dieses Format verwendet wird.

Benutze ich stattdessen varchar? Und hindert mich das nicht daran, Berechnungen durchzuführen, um zu bestimmen, wann Karten ablaufen und was nicht?

    
Mohamad 17.04.2011, 19:15
quelle

3 Antworten

9

Für Januar 2014:

%Vor%

Es ist üblich, 00 für Monat und Tag zu verwenden, die nicht definiert sind. Aus dem MySQL-Referenzhandbuch :

  

Einige Datumsfunktionen können mit "Null" -Daten oder unvollständigen Daten wie "2001-11-00" verwendet werden, andere dagegen nicht. Funktionen, die Teile von Daten extrahieren, arbeiten normalerweise mit unvollständigen Daten und können daher 0 zurückgeben, wenn Sie andernfalls einen Wert ungleich Null erwarten. Zum Beispiel:

%Vor%

und später im Handbuch für DATE_FORMAT :

  

Bereiche für Monat und Tag   Spezifizierer beginnen mit Null aufgrund der   Tatsache, dass MySQL das Speichern von ermöglicht   unvollständige Daten wie "2014-00-00".

    
Jason S 17.04.2011, 19:18
quelle
9

Sie können immer die Funktion LAST_DAY verwenden, um den letzten Tag des Monats einzufügen.

Zum Beispiel:

SELECT LAST_DAY('2011-02-01')

Würde in 2011 2011-02-28 ergeben. Im Allgemeinen möchten Sie den letzten Tag des Monats für eine Kreditkarte, da dies der tatsächliche letzte Tag ist, der gültig ist.

    
pickypg 17.04.2011 19:20
quelle
5

Verwenden Sie einfach den ersten Tag des Monats, wenn Sie im Standard-Datumsformat speichern. Es ist praktisch, das Datumsformat für Konvertierungen, Vergleiche usw. zu haben.

    
Larry Watanabe 17.04.2011 19:16
quelle

Tags und Links