La fonction Convert obtient la date de SQL Server champ DateTime avec une requête Visual FoxPro
Cet article explique comment utiliser la fonction SQL Server CONVERT()
pour extraire la partie date d’un champ DateTime SQL avec une requête Visual FoxPro.
Version d’origine du produit : Visual FoxPro
Numéro de la base de connaissances d’origine : 308133
Résumé
Les dates stockées dans une table SQL Server sont stockées en tant que type de données DateTime. Vous pouvez utiliser la fonction SQL Server CONVERT()
pour extraire la partie date d’un champ DateTime SQL avec une requête Visual FoxPro, par exemple :
SELECT CONVERT(CHAR(10), <field name>, 101) FROM <table name>
Vous pouvez toujours fournir uniquement la date lors de la spécification d’une condition de filtre dans la requête. L’heure n’est pas requise dans l’expression. Par exemple :
SELECT CONVERT(CHAR(10), <field name>, 101) FROM <table name> ;
WHERE <field name> = '01-01-1999'
Les premier et troisième paramètres de l’appel de fonction ci-dessus (CHAR(10) et 101) sont spécifiques à l’extraction de DateTime. La rubrique SQL Server documentation en ligne de la fonction CONVERT décrit les autres options disponibles.
Informations supplémentaires
L’exemple de code Visual FoxPro suivant se connecte à SQL Server et récupère des données. Le code utilise la fonction SQL CONVERT()
pour extraire la partie date du champ DateTime « ORD_DATE ». Le type de données retourné par la commande CONVERT est CHARACTER dans Visual FoxPro.
Pour utiliser cet exemple, procédez comme suit :
Collez le code suivant dans un nouveau programme dans 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
Entrez votre nom d’SQL Server, votre ID d’utilisateur et votre mot de passe en haut du code, là où cela est indiqué.
Enregistrez et exécutez le code.
References
Pour plus d’informations sur la fonction SQLConvert
, consultez SQL Server documentation en ligne.