Die Convert-Funktion ruft datum aus SQL Server DateTime-Feld mit einer Visual FoxPro-Abfrage ab.
In diesem Artikel wird beschrieben, wie Sie die funktion SQL Server CONVERT()
verwenden, um den Datumsteil eines SQL DateTime-Felds mit einer Visual FoxPro-Abfrage zu extrahieren.
Ursprüngliche Produktversion: Visual FoxPro
Ursprüngliche KB-Nummer: 308133
Zusammenfassung
Datumsangaben, die in einer SQL Server Tabelle gespeichert sind, werden als DateTime-Datentyp gespeichert. Sie können die funktion SQL Server CONVERT()
verwenden, um den Datumsteil eines SQL DateTime-Felds mit einer Visual FoxPro-Abfrage zu extrahieren. Beispiel:
SELECT CONVERT(CHAR(10), <field name>, 101) FROM <table name>
Sie können immer noch nur das Datum angeben, wenn Sie eine Filterbedingung in der Abfrage angeben. Die Zeit ist im Ausdruck nicht erforderlich. Zum Beispiel:
SELECT CONVERT(CHAR(10), <field name>, 101) FROM <table name> ;
WHERE <field name> = '01-01-1999'
Der erste und dritte Parameter im obigen Funktionsaufruf (CHAR(10) und 101) sind spezifisch für das Extrahieren von Date aus DateTime. Im thema SQL Server-Onlinedokumentation für die CONVERT-Funktion werden weitere verfügbare Optionen beschrieben.
Weitere Informationen
Der folgende Visual FoxPro-Beispielcode stellt eine Verbindung mit SQL Server her und ruft Daten ab. Der Code verwendet die SQL-Funktion CONVERT()
, um den Datumsteil des DateTime-Felds "ORD_DATE" zu extrahieren. Der vom BEFEHL CONVERT zurückgegebene Datentyp ist CHARACTER in Visual FoxPro.
Führen Sie die folgenden Schritte aus, um dieses Beispiel zu verwenden:
Fügen Sie den folgenden Code in ein neues Programm in Visual FoxPro ein:
*!* Enter your specific SQL Server information here. #DEFINE SQL_NAME " " #DEFINE SQL_UID " " #DEFINE SQL_PWD " "*~~~~~~~~~~~ LOCAL lcSQLConnStr, ; lnSQLConnHandle, ; lnSQLExecSuccess lcSQLConnStr = "DRIVER={SQL Server};SERVER=" + SQL_NAME + ; ";DATABASE=PUBS;UID=" + SQL_UID + ";PWD=" + SQL_PWD lnSQLConnHandle = SQLSTRINGCONNECT(lcSQLConnStr) IF lnSQLConnHandle < 1 LOCAL laErrArray[1] AERROR(laErrArray) WAIT WINDOW "Unable to connect:" + CHR(13) + laErrArray[3] RETURN .F. ENDIF lnSQLExecSuccess = SQLEXEC(lnSQLConnHandle, "SELECT stor_id, ord_num, ; CONVERT(CHAR(10), ord_date, 101) AS ord_date, qty, ; payterms, title_id from sales", "RESULTS") *!* Note that you can still use just a date value if using a WHERE clause *!* to filter the data: *!* lnSQLExecSuccess = SQLEXEC(lnSQLConnHandle, "SELECT stor_id, ord_num, ; *!* CONVERT(CHAR(10), ord_date, 101) AS ord_date, qty, payterms, ; *!* title_id from sales WHERE ord_date < '10/28/1993'", "RESULTS") IF lnSQLExecSuccess < 1 LOCAL laErrArray[1] AERROR(laErrArray) WAIT WINDOW "SQLEXEC() Failed:" + CHR(13) + laErrArray[3] ENDIF SQLDISCONNECT(lnSQLConnHandle) IF SELECT("RESULTS") > 0 SELECT RESULTS BROWSE NOWAIT ENDIF
Geben Sie ihren SQL Server Namen, die Benutzer-ID und das Kennwort oben im Code ein, sofern angegeben.
Speichern Sie den Code, und führen Sie den Code aus.
References
Weitere Informationen zur SQL-Funktion Convert
finden Sie in der SQL Server-Onlinedokumentation.