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

MysqlにUNIXミリ秒で日付を保存する方法は?

    しないでください。 DateTime 値はDateTimeとして保存する必要があります 、他の方法でそれらを保存する本当に正当な理由がない限り(DateTimeの最小/最大値以外の日付と時刻の値をサポートするためなど) )、DateTimeのままにしておくことをお勧めします 桁。

    Select中に、データベースからそれらを返す方法をいつでも操作できます。 またはプレゼンテーション層で。 DateTimeからUNIX時間を返すには 、MySqlは、UNIX_TIMESTAMP 。 UNIXタイムスタンプは、1970年1月1日からの秒数(うるう秒を含まない)であるため、ミリ秒数を返すには、単純に1000を掛けます。 UNIX時間を保存する場合は、intデータ型を使用する必要があります。

    実際のDateTimeを保存する代わりに、UNIX時間を保存する場合は注意してください。 DateTimeの値 データ型列を使用すると、組み込みのすべての日時データベース関数を簡単に使用できなくなります。たとえば、特定の月に属する行の数を知りたい場合は、最初にデータをintからdatetimeに変換する必要があります。その後、それを計算できます。

    また、精度が低下します(うるう秒を無視するため、UNIX時間は1秒の解像度でも不正確であるため)。

    したがって、結論として、データベースがデータに適合するデータ型を提供している場合は、別のデータ型を使用してそのデータを保存しないでください。 Dateを使用します 日付のみを保存する場合のデータ型、 DateTime 日時値を保存する場合はデータ型、および Time 1日の特定の時刻を格納する場合は、データ型。

    追伸
    日時の値を処理する場合、特に複数の場所からのクライアントを処理する必要がある場合は、常にUTC日時のみをデータベースに保存します。もちろん、怒りたくない限り。




    1. Puppetを使用したBarmanの自動化:it2ndq / barman(パート1)

    2. mysqlの2つの日付の間の土曜日と日曜日の総数を計算する方法

    3. JDBIでIN演算子を使用するにはどうすればよいですか?

    4. 2つの条件でINSERTINTOまたはUPDATE