2011-07-07 4 views
4

MYSQL DATEおよびTIMEフィールドを手動で更新する方法を理解しようとしています(今日の日付にはなりません)。つまり、日付フィールドを特定の日付値と時刻に設定しますフィールドを正しいSQL必須フィールド形式で正しく指定します。私は私のアクションは、ユーザーのフィールドを更新するためにPHP MYSQLは手動でdbのDATEおよびTIMEフィールドを更新します

は、いくつかの研究を完了し、(明らかにこの例の線に沿って何かを思い付いているとして挿入しないでUPDATEクエリを使用しています

は仕事を文句を言わないが、誰がどのようにフォーマットするかを知っていますこのクエリ

UPDATE mytblname SET date='DATE: Manual Date', '2011-06-14'', time='TIME: Manual Time', '12:10:00' WHERE email='somevalue' 

私はちょうどそれが時間の日付と午後12時00分〇​​〇秒のために0000-00-00を与える通常のSQLの方法として値を入力した場合 - ?つまり

SET date='2011-06-14',time='12:33:35' 

おかげさまで、ありがとうございます。

答えて

8
UPDATE mytblname SET `date`="2011-06-14", `time`="12:10:00" WHERE email="somevalue"; 

これは正常に動作するはずです。 dateおよびtimeの適切なバッククォートを使用していることを確認してください。

+0

そのように問題を引き起こしたことはありません – daza166

+0

@ daza166、何の問題?それはうまくいく、私を信頼してください。それがあなたのために働いていない場合は、あなたのWHERE条件があなたが望むものと一致しない可能性があります。たとえば、そのメールフィールドの大文字と小文字の区別をチェックしましたか? – Brad

+2

私は問題を見つけました。その方法では、日付フィールドに日付を入れていて、時刻フィールドに日付を入れていました。愚かな間違いです。ありがとう – daza166

1

MySQL Documentation on DATE, TIME and DATETIME formatsを参照してください。これらのタイプのフィールドに割り当てることができる値には、複数の可能性があることがわかります。

だから、これは動作するはずです:

UPDATE `mytblname` SET `date`=NOW(), `time`=NOW() WHERE `email`='somevalue'; 

またはそのような任意の特定の日付までの(文字列は自動的にDATE、TIMEまたはDATETIME形式に変換されます):

UPDATE `mytblname` 
SET 
`date`='1987-01-02 11:22:33', 
`time`='1987-01-02 11:22:33' 
WHERE `email`='somevalue'; 

ます。また割り当てることができますそれはより明確です:

UPDATE `mytblname` 
SET 
`date`='1987-01-02', 
`time`='11:22:33' 
WHERE `email`='somevalue'; 

唯一の質問は、どのパスwあなたが選択する病気:

+0

私は今日に日付と時刻を設定したくないのですが、今日の日付以外の日付に設定したいのですか? – daza166

+0

@ daza166:それをもっとクリアに更新しました:) – Tadeck

+0

@ saza166 DATETIMEフィールドを持っていて、これがその一部がゼロになっている理由ですか? – Tadeck

関連する問題