P: Qual é o formato/valor correto para
DATETIME
literal dentro de uma instrução MySQL? R: No MySQL, o formato padrão para um
DATETIME
literal é: 'YYYY-MM-DD HH:MI:SS'
com o componente de hora como um relógio de 24 horas (ou seja, os dígitos das horas fornecidos como um valor entre 00 e 23).
MySQL fornece uma função interna
STR_TO_DATE
que pode converter strings em vários formatos para DATE
ou DATETIME
tipos de dados. Então, como alternativa, você também pode especificar o valor de um
DATETIME
com uma chamada para essa função, assim:STR_TO_DATE('12/21/2012 1:13:58 PM','%m/%d/%Y %h:%i:%s %p')
Então, você pode fazer o MySQL fazer a conversão para você no
INSERT
declaração, se seu VALUES
lista ficou assim:... VALUES ('@stockID', STR_TO_DATE('@dateUpdated','%m/%d/%Y %h:%i:%s %p');
(Observo que falta uma vírgula obrigatória entre os dois literais em seu
VALUES
Lista.) O MySQL permite alguma latitude nos delimitadores entre as partes do
DATETIME
literal, então eles não são estritamente necessários. Manual de referência do MySQL 5.5.