日時フィールドの日付部分を取得しようとしています。 date_formatで取得できることは知っていますが、文字列または「varchar」フィールドを返します。結果をvarcharではなく日付に変換するにはどうすればよいですか?
これはvarcharを返す私のクエリです:
(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date
私はこの質問からいくつかの組み合わせを試しましたが、機能させることができませんでした:
どんな助けも大歓迎です。
DATEとしてキャストしてみてください
SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED
DATE関数 を使用します。
SELECT DATE(orders.date_purchased) AS date
CybernateまたはOMG Poniesのいずれかのソリューションが機能します。基本的な問題は、 DATE_FORMAT()
関数が日付ではなく文字列を返すことです。書いたとき
_(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date
_
基本的に、MySQLにそのフォーマット文字列に従って_date_purchased
_の値をフォーマットするように依頼し、そのカラム_date_purchased
_を呼び出す代わりに「Date」と呼ぶようにしたと思います。しかし、その列には日付が含まれなくなり、文字列が含まれます。 (Date_Format()
は日付ではなく文字列を返すため。)
私はそれがあなたがしたかったとは思わないが、それはあなたがしていたことだ。
値がどのように見えるかを値と混同しないでください。
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