3

MS Access プログラムにリンクされた多数の MySQL テーブルがあります。これらのテーブルをまとめて人間のやり方でデータを提供する、特にタイムスタンプを mm/dd/yyyy 形式に変換する 12 ほどのクエリもあります。

タイムスタンプhttp://www.unixtimestamp.com/index.phpをテストしましたが、以下のコードは日付を生成します: 4/25/2012 これは正しくありません。4/24/2012 である必要があります。

SELECT date_promised, DateAdd('s', 1335312000, #1/1/1970#) AS date_promised2 FROM erp_workorder AS t1 WHERE id_primary = 73135;

ここで何が起こっているのですか?

よろしく、アレックス

4

2 に答える 2

2

クエリの式は、Unix タイムスタンプに相当する日付/時刻を UTC time としてDateAdd()要求します。

? DateAdd("s", 1335312000, #1/1/1970#)
4/25/2012 

時刻を明示的に表示するには、形式を展開します。

? Format(DateAdd("s", 1335312000, #1/1/1970#), "yyyy-mm-dd hh:nn:ss")
2012-04-25 00:00:00

タイムスタンプをその Web ページのボックスに挿入し、[変換] ボタンをクリックすると、次の値が得られます。

04 / 24 / 12 @ 7:00:00pm EST

以前の形式を使用して...

2012-04-24 19:00:00

それでは、同じ瞬間のこれら 2 つの異なる表現を比較してみましょう。

2012-04-25 00:00:00 (UTC)
2012-04-24 19:00:00 (EST)

任意のタイム ゾーンのオフセットを含む UNIX タイムスタンプをクエリで表示する場合は、その変換を適用してください。

于 2012-04-05T16:14:12.573 に答える
0

date_promised フィールドが DATETIME タイプの場合、使用できます -

SELECT date_promised, DATE_FORMAT(date_promised, '%m/%d/%Y') AS date_promised2
FROM erp_workorder AS t1
WHERE id_primary = 73135;

date_promised フィールドに UNIX タイムスタンプが含まれている場合は、次を使用できます -

SELECT date_promised, DATE_FORMAT(FROM_UNIXTIME(date_promised), '%m/%d/%Y') AS date_promised2
FROM erp_workorder AS t1
WHERE id_primary = 73135;
于 2012-04-05T14:17:48.543 に答える