пустые поля mssql_query () для полей даты и времени - PullRequest
0 голосов
/ 25 января 2010

Запуск php 5.2.5 в Windows Server 2003 (64-разрядная версия) и подключение к SQL Server 2008

Проблемы с получением полей даты и времени из SQL Server с использованием mssql_query. Любое поле даты и времени, которое я запрашиваю, ничего не возвращает. Все остальные поля в запросе верны, но поля даты и времени не заполнены.

Мы недавно переключились с PEAR DB на функции mssql_, и это стало причиной проблемы. Переключение обратно в PEAR не вариант.

Я нашел это на странице php.net mssql_query, и она работает, но у меня есть сотни запросов, и я надеялся, что найдется решение, которое не потребует от нас обновления каждого отдельного запроса. У кого-нибудь есть лучшее решение, которое бы не включало переписывание каждого запроса?

"Меня смутило то, что mssql_query () возвращает значения для столбцов 'datetime' в необычном формате. Чтобы ваши значения возвращались в обычном формате YYYY-MM-DD HH: MM: SS , вы можете использовать функцию CONVERT в вашем запросе так:

SELECT CONVERT(varchar, INVOICE_DATE, 121) AS INVOICE_DATE ...

где «INVOICE_DATE» - это имя столбца «datetime». *

1 Ответ

0 голосов
/ 25 января 2010

Закончилось просто заменой строки, чтобы обойти это.

Сначала я создал массив полей дат, которые я мог бы выбрать из базы данных SQL Server, с которой я работал.

У нас есть класс абстракции БД, через который мы выполняем каждый запрос.

В классе DB я проверяю, было ли в запросе "FROM". Если бы это было, я разделил строку на FROM, чтобы получить часть полей SELECT Затем я выполняю foreach для массива полей и, если это поле существует в строке, я заменяю поле на CONVERT (varchar, FIELD, 121) AS FIELD

Прекрасно работает для меня ... не работает с SELECT *, но мы не используем запросы SELECT *, поэтому для нас это не проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...