私はこの形式の日付/時刻型の列を持っています:YYYY-MM-DD HH:mm:ss。日時の最後の8文字を更新します(....- ..-hh:mm:ss)
このデータを更新する私のPHPフォームでは、DATEpart用とTIMEpart用の2つの別々のフィールドを作成しました。
受信/使用して、テーブルからの私のPHPのフォームにこれらの値をロードするためには問題ありません:
RIGHT(datetime,8) for TIMEpart or for DATEpart LEFT(datetime,10)
問題は、私はまた、データのその部分だけを更新することはできませんしています。 TIMEpartで更新しようとすると、最後の8文字を更新するのではなく、datetimeの最初の8文字を更新しようとします。問題は、プログラムにそうするように指示する方法がわからない、私はそれが私のSQLクエリに定義する必要があることを知っている。
$query3=mysqli_query($db,"update LISTS set datetime=LEFT(datetime,10),
datetime=RIGHT(datetime,8) where id='$id'");
私はSQLとPHPの新機能です。私はすでに2つの別々の列を持つことによってこれが働いているが、私は可能な場合はSQLテーブルを簡素化したいと思います。
ありがとうございます。
なぜ時間や日付のみを更新する必要がありますか?これがdatetimeが通常使用される理由です。そうでなければ 'CURTIME()'を使うことができます。これは現在の時刻を表示したり、現在の日付の 'CURDATE()'を返します。なぜこれを使うことができないのですか?私があなたの質問を理解できない場合は、あなたがそれをやっている理由を説明しようとしてください – ZverArt
Datetimesはテーブルにフォーマットを持たないか、文字列として保存していると言いますか?あなたはしないでください。日時の適切な型は 'DATETIME'(または' TIMESTAMP')です。日時の日付部分を取得するには 'DATE'関数を使い、時間部分には' TIME'関数を使います。また、日付と時刻を別々に扱いたい場合は、別々に保管してください。これは、 'DATE'型の列と' TIME'型の型の列です。読み書きは簡単です。 –