SQL Aktuelles Datum (AS400)
Ich versuche, wählen Sie die Datensätze aus einer AS400-Datenbank, die ein Aktuelles Datum (im format mmttjj).
Dies ist, was ich Plane zu tun:
SELECT * FROM tableName WHERE $DATE='030411'
Ich versuchte Kombinationen von diesen, aber ohne Glück:
SELECT * FROM tableName WHERE $DATE='SELECT REPLACE(CONVERT(VARCHAR(10), GETDATE(), 1), '/', '')'
Irgendwelche Vorschläge?
Die Frage Bedarf noch der Klärung. Jede Zeile in jeder Tabelle, effektiv hat eine "aktuelle Datum". Das aktuelle Datum ist ein spezielles register, die immer verfügbar ist; es ist nicht ein Wert, der physikalisch abgerufen werden, die aus einer Spalte. Definition von "Aktuelles Datum" benötigt. Und DATUM-Spalten nicht über ein format. Ein "mmttjj" - format von Einstellungen für die Verbindung oder die Präsentation client. Ändern Sie die Einstellungen um ein anderes format. Wir müssen wissen, Verbindungs-details. Aber wenn die Spalte ist wirklich ein CHAR -, VARCHAR -, DEZIMAL-oder andere Daten-Typ und nicht ein DATUM ist, müssen wir wissen, dass auch.
InformationsquelleAutor integral007 | 2011-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Können Sie sehen, welchen Wert dieser Ausdruck bringt wie dieser:
Verwenden Sie
sysibm.sysdummy1
da SQL auf einem AS/400 (iSeries, System i, etc.) Sie können nichtSELECT
Werte aus der Luft gegriffen.Beachten Sie auch, dass
current date
bringen könnte, das Datum wieder in ein anderes format, abhängig von der SQL-Datumsformat. Dieser code ist zu erwarten, es werden in *ISO-format (YYYY-MM-DD
).Hier sind einige SQL-Anweisungen, die ich verwendet, um zu überprüfen, die diese routine.
Hier ist, was ich zurück bekam:
Sind Sie eine Fehlermeldung erhalten, oder einfach nur nicht immer alle Zeilen zurück? Was kommt zurück, wenn Sie schreiben
select current date from sysibm.sysdummy1
?BTW, wenn
select current date from sysibm.sysdummy1
nicht funktioniert, versuchen Sie es alsselect current date from sysibm/sysdummy1
(falls Ihr SQL-Sitzung *SYS-naming convention).InformationsquelleAutor dmc
Den oben erzeugt die Zeichenkette, Darstellung der *USA-format [D. H.
MM/DD/YYYY
] für das Aktuelle Datum mithilfe derCHAR
cast Skalare Funktion, dann ersetzt das '/' Zeichen im stringMM/DD/YYYY
mit der null-Zeichenfolge zuMMDDYYYY
mit derREPLACE
Skalare Funktion, und fügt dann die null-string, beginnend mit position fünf [d.h. die erste Ziffer derYYYY
imMMDDYYYY
] beim entfernen von zwei bytes, string [d.h. das "einfügen" ist tatsächlich ersetzen Sie die fünfte und sechste Byte, oder pro die Argumente, auf die der insert-Skalare aus dem fünften (5) für zwei (2) Byte mit der null-Zeichenfolge] mit derINSERT
Skalare Funktion, so dass das gewünschte Ergebnis der stringMMDDYY
[wobei die letzten zwei bytesYY
sind die 10**1-und 10**0 Anteile an der Zahl, so bezeichnet man dies alsYYYY
imMM/DD/YYYY
].GRÜßEN, Chuck
InformationsquelleAutor CRPence
030411 =
Das WLAN , einfach kopieren und ausführen der select-Abfrage in SQL server. Sollte es wieder der mmttjj formatierte Wert.
Diese Frage ist für AS/400, nicht SQL Server
Wenn ich diese ausführen auf AS400 es sagt "GETDATE-in *LIBL Art *N nicht gefunden."
InformationsquelleAutor arlen
Versuchen Sie die folgenden Schritte..
STRSQL
GEBEN SIE IHRE ANFRAGE
DRÜCKEN Sie F4
SETZEN SIE IHREN CURSOR VOR DAS "WO"
DRÜCKEN Sie F4
1 IN FRONT DES ENTSPRECHENDEN SPALTE DATUM NAME
DRÜCKEN SIE DIE EINGABETASTE
WENN die SPALTE NUMERISCHE Werte GEBEN OHNE ANFÜHRUNGSZEICHEN E. G 1234 UND NICHT '1234'
DRÜCKEN SIE DIE EINGABETASTE
SOLLTEN SIE IHR ERGEBNIS
InformationsquelleAutor Jatin Sapariya