2012-06-09 2 views
-1

Возьмем поле msgdate в моем столе private_message. Мы определяем тип данных msgdate как datetime.как сохранить текущую дату

Когда мы вставляем данные, поле msgdate хранит 0000-00-00 00:00:00 не текущую дату.

$Query = "INSERT INTO private_message (id, sender, msgdate) VALUES ($_POST['id'],$_POST['to'], now()"; 
$Res = mysql_query($Query); 
+0

Ваши скобки не сбалансированы. –

+0

Вам нужно добавить другой вопрос в конце –

+0

выберите лучший ответ и проголосуйте –

ответ

0

Вы уверены, что это работает?

"INSERT INTO private_message (id, sender, msgdate) VALUES ($_POST['id'],$_POST['to'], now()" 

или он должен быть:

INSERT INTO private_message (id, sender, msgdate) VALUES ($_POST['id'],$_POST['to'], now())" 
+0

из-за скобки, которую ваш запрос работает, но он не хранит текущую дату –

+0

вам нужно проверить свой тип данных, так как я создал таблицу с тем же структуру и запустить инструкцию insert из php-файла, он правильно вставляет дату-время – Satya

0

только скобка была упущена

INSERT INTO private_message (id, sender, msgdate) VALUES ($_POST['id'],$_POST['to'], **OneOfTheseFunctions**) 

заменить OneOfTheseFunctions с на этих трех утверждений:

Есть три способы извлечения текущего времени в S QL SERVER.

CURRENT_TIMESTAMP, GETDATE(), {fn NOW()} 

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP является недетерминированной функции. Представления и выражения, ссылающиеся на этот столбец, не могут быть проиндексированы. CURRENT_TIMESTAMP может использоваться для печати текущей даты и времени каждый раз, когда создается отчет.

GETDATE()

GETDATE является недетерминированной функции. Представления и выражения, ссылающиеся на этот столбец, не могут быть проиндексированы. GETDATE может использоваться для печати текущей даты и времени каждый раз, когда отчет создается.

{п Теперь()}

Индикатор {п Теперь()} является канонической функцией ODBC, который может быть использован в T-SQL, так как поставщик OLE DB для SQL Server поддерживает их. {fn Now()} может использоваться для печати текущей даты и времени каждый раз, когда создается отчет.

Если вы запустите следующий скрипт в Query Analyzer. Я дам вам те же результаты. Если вы видите план выполнения, разница в производительности отсутствует. Это одинаково для всех трех операторов select.

SELECT CURRENT_TIMESTAMP 
GO 
SELECT {fn NOW()} 
GO 
SELECT GETDATE() 
GO 

Не беспокойтесь, все они равны по функциональности и производительности!

+0

после добавления скобки, он не хранит currentdate и время в базе данных –

+0

, мы можем использовать CURRENT_TIMESTAMP во время инструкции insert –

+0

yup, почему бы и нет? : - ?? проверить его: D –

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