2015-05-10 3 views
1

Я пытаюсь вставить значение datetime в мою базу данных SQL с помощью PHP.Вставить DateTime в SQL Server с помощью PHP

Это мой код:

$time= date('Y-m-d H:i:s.u'); 

$ordersquery= "INSERT INTO Orders (customerID, orderDate) VALUES ('{$phonenumber}', '{$time}')"; 
echo $ordersquery."\n"; 

Всякий раз, когда я пытаюсь выполнить код, происходит сбой ввода информации в базу данных, которая гласит:

INSERT INTO Orders (CUSTOMERID, ORDERDATE) VALUES ('(444) 849-7592', '2015-05-10 12: 03: 28,000000')

булева ложь

Конверсия не удалась при преобразовании даты и/или времени с символа .

нуль

Я также попытался использовать CURRENT_TIMESTAMP и используя формат ISO-8601.

+0

Какой тип данных является 'orderDate'? – lolbas

+0

orderDate объявлен datetime –

+1

Я ничего не знаю о php, но знаю сервер sql. используйте [Параметрированные запросы.] (https://msdn.microsoft.com/en-us/library/cc296201 (v = sql.105) .aspx) Ссылка содержит пример php. –

ответ

1

Насколько я знаю, CURRENT_TIMESTAMP может хранить временную метку в формате Y-m-d H: m: s. Кроме Y-m-d H: m: s Ошибка при передаче.

Вы можете задать тип данных ORDERDATE в Varchar и при запросе в базу данных, чтобы просто конвертировать/тип брось в формат Дата ..

Надеется, что это поможет или может дать вам представление о том, чтобы решить эту проблему ....

+0

Это то, что я получаю, когда использую Current_Timestamp: INSERT INTO Orders (customerID, orderDate) VALUES ('(333) 736-4572', 'CURRENT_TIMESTAMP') boolean false Конверсия не удалась при преобразовании даты и/или времени из символьной строки , null –

+0

set orderDate тип данных для Varchar при вставке в db и при обращении к db только преобразовать/введите приведение его в формат даты DATE_FORMAT Y-m-d H: i: s.u –

+1

@MangeshSatheIND НИКОГДА НИКОГДА не сохраняйте значения времени даты как varchar. –

2

Попробуйте этот формат вместо того, чтобы:

$time= date('Y-m-d H:i:s'); 

значение, которое будет вставлен в Datetime должен быть в «ГГГГ-ММ-ДД ЧЧ: ММ: СС» формат. Поддерживаемый диапазон: «1000-01-01 00:00:00» до «9999-12-31 23:59:59».

+0

Вот что получается, когда я использую «YYYY-MM-DD HH: MM: SS» INSERT INTO Orders (customerID, orderDate) VALUES ('(333)) 736-4572 ',' 1969196919691969-DecDec-WedWed 1919: DecDec: stst ') boolean false –

+1

@IrisSpik Нет!Используйте часть, указанную в разделе кода, а не пояснения ниже - я имею в виду эту часть: '$ time = date ('Ymd H: i: s');' – Hatef

+0

Вот результат: INSERT INTO Orders (customerID, orderDate) VALUES ('(578) 743-4753', '2015-05-10 13:11:26') boolean false –

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