PHPを使用してMSSQL Serverのdatetimeテーブルから日付と時刻を表示しようとすると、SQL Serverからの値はdatetime EXです。2012-08-20 06:23:28:214
. 正確な結果を表示したいのですが、phpはこのEXのように表示します。Aug 20 2012 6:23AM
. strtotime を使用しようとしましたが、ミリ秒が表示されないか、むしろ表示されます : 000
。
どんな助けでも大歓迎です。前もって感謝します。
PHPを使用してMSSQL Serverのdatetimeテーブルから日付と時刻を表示しようとすると、SQL Serverからの値はdatetime EXです。2012-08-20 06:23:28:214
. 正確な結果を表示したいのですが、phpはこのEXのように表示します。Aug 20 2012 6:23AM
. strtotime を使用しようとしましたが、ミリ秒が表示されないか、むしろ表示されます : 000
。
どんな助けでも大歓迎です。前もって感謝します。
PHPのstrtotime()を使用してSQL日付をUNIX時間に変換してから、date()を使用して必要に応じて再フォーマットします。=strtotime("2012-08-20 06:23:28.214")
動作するので、文字列操作を使用して最後のコロンを小数点に変更するだけです。
または、このブログ投稿には、MSSQLServerがUNIX時間を直接返すようにするために使用できるコードが含まれています。重要な機能はSELECT DATEDIFF(second, '1970/01/01 00:00:00', @date)
です。
実際にSQLServerではなくMySQLを使用している場合は、この関数を使用しUNIX_TIMESTAMP()
て現在のUNIX時間を返すことができます。
これを試して、
SELECT CONVERT(VARCHAR(50), CAST('2012-08-20 06:23:28:214' as DateTime), 100)
AS [OutPut]
-- expected output
-- Aug 20 2012 6:23AM
上記の例から、元のデータ型CAST
に変換するために使用しました。ただし、元のクエリでは、列が既にデータ型にあると述べているため、関数を省略できます。string date
DateTime
CAST
DateTime
SELECT CONVERT(VARCHAR(50), columnDateTime, 100)
DateTimeオブジェクトには、u
マイクロ秒 (最大 6 つ) を表す入力文字列型があります。
ただし、 DateTime::formatは標準の日付と同じ文字列を使用しますが、以下はu
データの出力に関するドキュメントから取得されます。
マイクロ秒 (PHP 5.2.2 で追加)。date() は整数パラメーターを取るため、常に 000000 を生成しますが、DateTime::format() はマイクロ秒をサポートすることに注意してください。