2012-01-31 26 views
8

SELECT *クエリで日付フィールドをフォーマットすることはできますか?私はテーブルからすべての列を取得したいが、日付とは異なる形式が必要です。SELECT *クエリの日付形式

ような何か:

SELECT *, FORMATDATE(date,'%m-%d-%y') AS date FROM my_table; 

または私は、クエリの後にPHPでそれを処理しなければなりませんか?

+0

これを試しましたか? –

+1

Googleはあなたの友人です:http://www.w3schools.com/sql/func_date_format.asp – cubetwo1729

+0

@ cubetwo1729:w3schoolsにはいくつかの正しいものがありますが、間違ったものもたくさんあります。例はMySQLで全く動作しない[CHECK制約](http://www.w3schools.com/sql/sql_check.asp)です... –

答えて

17

使用DATE_FORMAT

SELECT *, DATE_FORMAT(date, "%m-%d-%y") AS date FROM my_table; 
+2

Y2K警察はここにあります。 "%m-%d-%Y"(%Y - > 4桁年、%y - > 2桁年)は可能な限り可能性が高いでしょう。 –

+0

私は自分のコードに近いです!結果に新しいフィールドを作成せずにそれを行う方法はありますか? – PGrau

+2

@PGrauあなたは日付フィールドとフォーマットされた日付フィールドを返さないことを意味しますか?次に、元の日付フィールドをSELECTから削除します。 'DATE_FORMAT(date、"%m-%d-%y ")AS 'date'、col1、col2、col3 FROM ... ' –

0

を使用することができ、より良い練習がしますフォーマットint(8)フィールドに格納されているUNIXのタイムスタンプを使用してください。そうしないと、クエリの日付フィールドをフォーマットできます。

1
select DATE_FORMAT(your_date_field_name,'%m-%d-%y') AS whatever FROM your_table_name_here; 

結果は、この

2011-02-02 15時42分51秒

とは対照的に、この

09-22-11

のようなものです

0

date_formatの後ろに列の名前を付けることができます。このように:

$rs = mysql_query("select blablabla,DATE_FORMAT(name_column, '%d-%b-%y | %H:%i')name_column,DATE_FORMAT(name_column2, '%d-%b-%y | %H:%i')as name_column2 from db ORDER BY id DESC limit $offset,$rows"); 

またはあなたが はい「と」置くことができ、あなたは一つ一つを選択する必要があります。その仕事!!!!