2

PHPを使用してMSSQL Serverのdatetimeテーブルから日付と時刻を表示しようとすると、SQL Serverからの値はdatetime EXです。2012-08-20 06:23:28:214. 正確な結果を表示したいのですが、phpはこのEXのように表示します。Aug 20 2012 6:23AM. strtotime を使用しようとしましたが、ミリ秒が表示されないか、むしろ表示されます : 000

どんな助けでも大歓迎です。前もって感謝します。

4

3 に答える 3

1

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時間を返すことができます。

于 2012-08-26T23:08:49.063 に答える
1

これを試して、

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 dateDateTimeCASTDateTime

SELECT CONVERT(VARCHAR(50), columnDateTime, 100)

SQLFiddle デモ

MSSQL Server で日付と日時をフォーマットする方法

于 2012-08-27T00:21:29.657 に答える
0

DateTimeオブジェクトには、uマイクロ秒 (最大 6 つ) を表す入力文字列型があります。

ただし、 DateTime::formatは標準の日付と同じ文字列を使用しますが、以下はuデータの出力に関するドキュメントから取得されます。

マイクロ秒 (PHP 5.2.2 で追加)。date() は整数パラメーターを取るため、常に 000000 を生成しますが、DateTime::format() はマイクロ秒をサポートすることに注意してください。

于 2012-08-26T23:19:02.173 に答える