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:

  1. 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
    
  2. Geben Sie ihren SQL Server Namen, die Benutzer-ID und das Kennwort oben im Code ein, sofern angegeben.

  3. 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.