Функция Convert получает дату из поля DateTime SQL Server с помощью запроса Visual FoxPro
В этой статье описывается, как использовать функцию SQL Server CONVERT()
для извлечения части даты поля даты SQL DateTime с помощью запроса Visual FoxPro.
Исходная версия продукта: Visual FoxPro
Исходный номер базы знаний: 308133
Сводка
Даты, хранящиеся в таблице SQL Server, хранятся как тип данных DateTime. Функцию SQL Server CONVERT()
можно использовать для извлечения части поля даты SQL DateTime с помощью запроса Visual FoxPro, например:
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) относятся к извлечению даты из DateTime. В разделе электронной документации по SQL Server для функции CONVERT описаны другие доступные варианты.
Дополнительная информация
Следующий пример кода Visual FoxPro подключается к SQL Server и извлекает данные. Код использует функцию SQL CONVERT()
для извлечения части даты в поле DateTime "ORD_DATE". Тип данных, возвращаемый командой CONVERT, — CHARACTER в Visual FoxPro.
Чтобы использовать этот пример, выполните следующие действия.
Вставьте следующий код в новую программу в 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
Введите имя SQL Server, идентификатор пользователя и пароль в верхней части кода, где указано.
Сохраните и запустите код.
Ссылки
Дополнительные сведения о функции SQL Convert
см. в SQL Server электронной документации.