Convert 関数は、Visual FoxPro クエリSQL Server DateTime フィールドから日付を取得します

この記事では、SQL ServerCONVERT()関数を使用して、Visual FoxPro クエリを使用して SQL DateTime フィールドの日付部分を抽出する方法について説明します。

元の製品バージョン: Visual FoxPro
元の KB 番号: 308133

概要

SQL Server テーブルに格納されている日付は、DateTime データ型として格納されます。 SQL ServerCONVERT()関数を使用して、Visual FoxPro クエリを使用して SQL DateTime フィールドの日付部分を抽出できます。次に例を示します。

SELECT CONVERT(CHAR(10), <field name>, 101) FROM <table name>

クエリでフィルター条件を指定する場合でも、日付だけを指定できます。 式では時刻は必要ありません。 例:

SELECT CONVERT(CHAR(10), <field name>, 101) FROM <table name> ;
 WHERE <field name> = '01-01-1999'

上記の関数呼び出し (CHAR(10) と 101) の最初と 3 番目のパラメーターは、DateTime から Date を抽出することに固有です。 CONVERT 関数の SQL Server オンライン ブック トピックでは、他の使用可能なオプションについて説明します。

詳細

次の Visual FoxPro サンプル コードは、SQL Serverに接続してデータを取得します。 このコードでは、SQL CONVERT() 関数を使用して DateTime フィールド 'ORD_DATE' の日付部分を抽出します。 CONVERT コマンドによって返されるデータ型は、Visual FoxPro の CHARACTER です。

このサンプルを使用するには、次の手順に従います。

  1. Visual FoxPro 内の新しいプログラムに次のコードを貼り付けます。

    *!* 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. 示されているコードの上部に、SQL Server名、ユーザー ID、およびパスワードを入力します。

  3. コードを保存して実行します。

関連情報

SQL Convert 関数の詳細については、「オンライン ブックのSQL Server」を参照してください。