2013-03-15 10 views
2

В настоящее время я получаю дату из mssql с типом данных небольшого времени.Преобразование класса DateTime в строку

Данные: 2013-03-12 00:00:00

Я хочу сохранить его в переменной, а затем отобразить в текстовом поле.

И формат, который я хочу отобразить, всего лишь 2013-03-12 в текстовом поле.

сообщение я получаю:

catchable фатальная ошибка: Объект класса DateTime не может быть преобразован в строку.

Любая идея?

+0

Где запрос вы пробовали, что дал вам эту ошибку? пожалуйста, опубликуйте его. –

+0

Вы пытаетесь сделать это с помощью php или sql? –

+0

Выберите * from

где id = xxx Один из столбцов внутри таблицы - это smalldatetime type – Genjo

ответ

5

в PHP вы можете просто использовать date_format($date, 'Y-m-d')

<?php 
$date = date_create('2013-11-23 05:06:07'); 
echo date_format($date, 'Y-m-d'); 
?> 

возвращается 2013-11-23

2

Использование CONVERT:

SELECT COVERT(VARCHAR(10), datefield, 121) 
FROM tablename; 
+0

I jusst заменить поле даты именем столбца, которое я использую в моей базе? Что такое 121? – Genjo

+0

@Genjo - Определяет стиль форматированной даты для преобразования, с '121' он дает вам дату в формате:' yyyy-mm-dd hh: mi: ss.mmm', а затем конвертирует ее только в ' VARCHAR (10) 'даст вам:' yyyy-mm-dd'. –

+1

Я предпочитаю обрабатывать презентацию в слое презентации. –

4

Следующий код даст вам дату полезной для SQL:

$dateTime->format(\DateTime::ISO8601); 

-edit-

На самом деле, я только что видел, что вы хотите это наоборот. В этом случае:

$dateTime->format('Y-m-d'); 
+0

Я не понимаю, почему это не принятый ответ ... – natanelg97

Смежные вопросы