Eu estou tentando obter a parte de data de um campo de data e hora. Eu sei que posso obtê-lo com date_format, mas isso retorna um campo de string ou "varchar". Como posso converter o resultado para data e não como varchar?
Esta é minha consulta retornando o varchar:
(Select Date_Format(orders.date_purchased,"%m/%d/%Y")) As Date
Eu tentei várias combinações desta questão, mas não consegui fazê-lo funcionar:
consulta mysql - formata a data na saída?
Qualquer ajuda é apreciada.
Respostas:
39 para resposta № 1Tente lançá-lo como DATE
SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED
28 for answer № 2
Use o Função DATE:
SELECT DATE(orders.date_purchased) AS date
3 para resposta № 3
A solução Cybernate ou OMG Ponies funcionará. O problema fundamental é que a função DATE_FORMAT () retorna uma string, não uma data. Quando você escreveu
(Select Date_Format(orders.date_purchased,"%m/%d/%Y")) As Date
Eu acho que você estava essencialmente pedindo ao MySQL para tentarpara formatar os valores em "date_purchased" de acordo com essa string de formato e, em vez de chamar essa coluna "date_purchased", chame-a de "Date". Mas essa coluna não conteria mais uma data, ela conteria uma string. (Porque Date_Format () retorna uma string, não uma data.)
Eu não acho que é o que você queria fazer, mas isso é o que você estava fazendo.
Não confunda como um valor se parece com o valor.
1 para resposta № 4
sintaxe de date_format:
SELECT date_format(date_born, "%m/%d/%Y" ) as my_date FROM date_tbl
"%W %D %M %Y %T" -> Wednesday 5th May 2004 23:56:25
"%a %b %e %Y %H:%i" -> Wed May 5 2004 23:56
"%m/%d/%Y %T" -> 05/05/2004 23:56:25
"%d/%m/%Y" -> 05/05/2004
"%m-%d-%y" -> 04-08-13
0 para a resposta № 5
Eu vejo muitos tipos de usos, mas acho esse layout mais útil como uma ferramenta de referência:
SELECT DATE_FORMAT("2004-01-20" ,"%Y-%m-01");