2011-11-10 6 views
0

おはよう、デフォルト行のコピー中に日付列のINTO値を挿入する方法は?

私はphp、mysql、ajaxでうまく機能しました。リンクはクエリを実行してエントリをコピーします。このクエリは現在正常に実行されています

$sql = "INSERT INTO players(day, name, lastname) SELECT day, name, lastname FROM players WHERE id=$id"; mysql_query($sql); 

カラム 'day'は日付カラムです。行に属する日付の代わりに、現在の日付($ now)を挿入します。デフォルト値の並べ替えは、これまでのところこれを見つけることができませんでした。おそらく単純ですが、どんなアドバイスですか?

ありがとうございます!

答えて

2

SELECTリストには列ではないものを含めることができます。そして、あなたがこれを使用することができ、あなたがPHPの変数$this_dateに望んでいたし、それが適切なフォーマットにあった日付を持って起こる場合

insert into players (day, name, lastname) 
select current_date, name, lastname 
from players 
where id = $id 

:現在の日付はそう、このSQLは、トリックを行う必要がありcurrent_dateとして利用可能であるべき:

insert into players (day, name, lastname) 
select '$this_date', name, lastname 
from players 
where id = $id 
+0

すごくうまくいった!今は唯一の問題は、 "11月10日木曜日"(l jS F)と書式設定して保存する必要があるということです。これは可能ですか?乾杯! –

+1

文字列としてフォーマットされていないDATEデータ型として保存します。そして、あなたがそれを問い合わせると、あなたは['DATE_FORMAT()'](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html# function_date-format)を使用します。 –

+0

@Maarten:「day」は日付ではなく文字列ですか?私はそれをお勧めしませんが、['date_format'](http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format):' date_format(現在の日付、 '%W%D%M') '。 –

0

組み込みのMySQLの日付と時刻、またはCURDATE関数を使用できます。列がDateTimeの場合は、NOW()を使用します。 MySQL NOW Documentation

$sql = "INSERT INTO players(day, name, lastname) SELECT NOW(), name, lastname FROM players WHERE id=$id"; mysql_query($sql); 

列には、日付が、その後CURDATE()関数内またはさらに簡単NOWとDATE()関数を()を使用している場合。 MySQL CURDate Documentation

$sql = "INSERT INTO players(day, name, lastname) SELECT CURDATE(), name, lastname FROM players WHERE id=$id"; mysql_query($sql); 

    $sql = "INSERT INTO players(day, name, lastname) SELECT DATE(NOW()), name, lastname FROM players WHERE id=$id"; mysql_query($sql); 

MySQL Date Documentation

+0

私は間違いを修正しました。長い一日だった。 – pilotgallo2

0

MSSQLは同じためGETDATE()を有しています。

関連する問題