MySQL: 日付文字列を Unix タイムスタンプに変換する
データベースから日付文字列を取得するときに、一貫性のない形式の問題が発生することは珍しくありません。 AM または PM のサフィックスを含むタイムスタンプなど。この記事では、これらの日付文字列を Unix タイムスタンプに効果的に変換する方法を説明します。
当面の問題は、「Apr 15 2012 12:00AM」という形式の文字列を Unix タイムスタンプに変換することです。 CONVERT(DATETIME, Sales.SalesDate, 103) と CONVERT(TIMESTAMP, Sales.SalesDate, 103) を使用した最初の試みは成功しなかった可能性がありますが、解決策は次の手順にあります。
ステップ1: 日付文字列を DATETIME に変換します
まず、次のことを行う必要があります。 STR_TO_DATE 関数を使用して、日付文字列を DATETIME オブジェクトに変換します。この関数は、日付文字列と形式文字列の 2 つのパラメータを必要とします。この場合、形式文字列は入力文字列の形式 ("%M %d %Y %h:%i%p") と一致する必要があります。
STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')
ステップ 2: DATETIME を Unix に変換するTimestamp
DATETIME オブジェクトを取得したら、次のコマンドを使用してそれを Unix タイムスタンプに変換できます。 UNIX_TIMESTAMP 関数。この関数は DATETIME オブジェクトを引数として受け取り、対応する Unix タイムスタンプを返します。
UNIX_TIMESTAMP(SELECT STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))
これらの手順に従うことで、AM または PM のサフィックスが付いた日付文字列を目的の Unix タイムスタンプ形式に正常に変換できます。
その他のフォーマットに関する考慮事項
必要な出力フォーマットの場合デフォルトの Unix タイムスタンプとは異なる場合は、FROM_UNIXTIME 関数を使用してさらに処理し、書式を調整できます。この関数は、Unix タイムスタンプと新しい形式文字列の 2 つの引数を取ります。
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')),'%m-%d-%Y %h:%i:%p')
このコードは、Unix タイムスタンプを "mm-dd-yyyy hh:mm:ss" 形式の日付文字列に変換します。
結論
日付文字列を次のように変換する方法を理解することで、 DATETIME オブジェクト、そして Unix タイムスタンプに至るまで、MySQL で日付関連のデータをより柔軟に操作できるようになります。この記事で説明する手法は、一般的な書式設定の問題を解決し、日付文字列から貴重な情報を抽出するための信頼性が高く効率的なアプローチを提供します。
以上がAM/PM サフィックスが付いた MySQL 日付文字列を Unix タイムスタンプに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。