sql >> データベース >  >> RDS >> Mysql

MySQLは私のタイムスタンプ値を0000-00-00に変換しています

    これはかなり頻繁に発生します。
    実際にはDATETIMEのような値であるmysqlタイムスタンプと1970-01-01から経過した秒数であるUNIXタイムスタンプを混同しています。

    フィールド形式または挿入値のいずれかを変更する必要があります。
    また、いくつかのmysql関数が便利です-たとえば、CURDATE()またはNOW()

    $sql = 'INSERT INTO users VALUES (NULL,:username,:password,:email,NOW(),NOW())';
    $stmt = $pdo->prepare($sql);
    $stmt->execute(array($username, $password, $email));
    

    しかし、個人的にはmysqlのタイムスタンプは避けたいと思います。それらは予期せず変更され、すべてのデータを台無しにする可能性があります。 DATETIMEを使用します すべての値を手動で設定します。



    1. 大規模なクエリ後にpsycopg2がメモリリークしている

    2. SQLケース:3つのあまり知られていない面倒を知って回避する

    3. PostgreSQLの日付から日、月、年を取得する3つの関数

    4. WHERESELECTサブクエリエラーを伴うMYSQLアップデート