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

タイムスタンプではなくDateTimeを選択したのはいつですか

    コメントで述べたように、これは主に個人的な好みによるものだと思います。私の目には、Unixタイムスタンプと「レガシー」非OOPインターフェースの使用は、今日の世界でそれを行う方法ではありません。たとえば、<コードを使用することはありません(読むべきではありません)。> INT Unixタイムスタンプ形式で日付を格納するためのデータベースのデータ型。代わりに、データベースのネイティブ型(通常は DATE )を使用する必要があります。 またはDATETIME PHPのDateTimeと連携するタイプ 標準変換に関しては、オブジェクト(および他の言語)はほぼネイティブです。

    標準変換の意味について少し詳しく説明します。MySQLを使用して値をPHPに戻すと、ISO形式の日付文字列が取得されます。この文字列の DateTime クラスはコンストラクターで解析し、すぐに使用できるオブジェクトを提供します。対照的に、Unixタイムスタンプルートを使用するには、 strtotimeを使用する必要があります。 、次に 日付 ネイティブで好きな形式に変換できます。

    PHPシステムと.NETシステム間の相互運用については前に説明しました。タイムスタンプを使用することによって引き起こされる特定の問題はありませんが、それは実際的な解決策ではありません。繰り返しになりますが、パイプを直接送信できるDateTime値を返すデータベースを使用します。これをPHPで内部的に使用するためにUNIXタイムスタンプに変換する場合、応答を送信する場合、または.NETアプリケーションに応答を送信する場合(またはAPIとだけ言う必要があります)、それを元に戻す必要があります。この場合)これはタイムスタンプであり、最後に変換します。 DateTimeを使用する 全体的に、変換を行う必要性が軽減され、開発プロセス全体が簡単になります。

    最後に、これらすべてに追加するために、投稿でも言及したように、 DateIntervalなどの光沢のあるアイテムを使用することができます。 、 DateTime を使用すると、タイムゾーニング、操作、フォーマットなどが簡単になります。 そしてそれは犯罪における関連するオブジェクト指向のパートナーです。私の目には、開発プロセスが簡単です。

    これには「正しい」答えがあると最初に言ったので、私は信じていません。あなた自身のコーディングスタイルに基づく個人的な好みであり、上記のコメントは私のものを反映しています。

    • 私は決してそうは思わない。特にPHPスクリプトは、とにかく実行時間の短いプロセスであるのが一般的です。

    はい:)

    データベースに関する上記のコメントを参照してください。この目的のIMOにUnixタイムスタンプを使用することは「ネイティブ」ではありません。 -> getTimezoneを呼び出すだけです これをデータベースに保存してから、-> setTimezoneを使用します もう一度引き抜くと



    1. MariaDBでのLIKEオペレーターのしくみ

    2. 世界のバックアップの日:知っておくべき4つの興味深いデータ損失の事実

    3. SQLServerのFloatとNumeric/Decimalの違いは何ですか-SQLServer/T-SQLチュートリアルパート33

    4. PostgreSQLでパーセンテージとして数値をフォーマットする3つの方法