タグ付けされた質問 「timestamp」

タイムスタンプデータ型および/または特定の時点の記録に関する質問。

2
PostgreSQLから現在のUNIXタイムスタンプを取得するにはどうすればよいですか?
Unixタイムスタンプは、UTC 1970年1月1日午前0時からの秒数です。 PostgreSQLから正しいUNIXタイムスタンプを取得するにはどうすればよいですか? currenttimestamp.comおよびtimestamp.1e5b.deと比較すると、PostgreSQLから予想される時間を取得できません。 これは正しいタイムスタンプを返します: SELECT extract(epoch from now()); これはしませんが: SELECT extract(epoch from now() at time zone 'utc'); 私はUTC +02のタイムゾーンに住んでいます。PostgreSQLから現在のUNIXタイムスタンプを取得する正しい方法は何ですか? これは正しい時間とタイムゾーンを返します: SELECT now(); now ------------------------------- 2011-05-18 10:34:10.820464+02 別の比較: select now(), extract(epoch from now()), extract(epoch from now() at time zone 'utc'); now | date_part | date_part -------------------------------+------------------+------------------ 2011-05-18 10:38:16.439332+02 | 1305707896.43933 …

2
now()とcurrent_timestampの違い
PostgreSQLでは、now()and current_timestamp関数を使用しますが、違いはありません。 # SELECT now(), current_timestamp; now | now --------------------------------+-------------------------------- 04/20/2014 19:44:27.215557 EDT | 04/20/2014 19:44:27.215557 EDT (1 row) 何か不足していますか?

4
MySQLはUTCタイムをデフォルトのタイムスタンプとして設定します
デフォルト値が現在のUTC時間であるタイムスタンプ列を設定するにはどうすればよいですか? MySQLはUTC_TIMESTAMP()UTCタイムスタンプに関数を使用します。 mysql> SELECT UTC_TIMESTAMP(); +---------------------+ | UTC_TIMESTAMP() | +---------------------+ | 2012-07-01 11:36:35 | +---------------------+ 1 row in set (0.00 sec) だから私は試しました: CREATE TABLE `blah` ( `creation_time` TIMESTAMP DEFAULT UTC_TIMESTAMP, ... その他のバリエーション、、などUTC_TIMESTAMP()が成功していません。

2
PostgreSQLからミリ秒単位でタイムスタンプ列を取得する方法は?
timestamp without time zone default now()PostgreSQLデータベースにtype で「作成」された列があります。 列を選択すると、デフォルトで見やすく読みやすい形式になります。 SELECT created FROM mytable; created --------------------------- 2011-05-17 10:40:28.876944 しかし、私はミリ秒だけでタイムスタンプを取得したい(ロングとして)。このようなもの: SELECT myformat(created)FROM mytable; created ----------------- 2432432343876944 PostgreSQLからミリ秒単位でタイムスタンプ列を取得するにはどうすればよいですか? ジャックへの応答: 私はあなたと同じ違いを取得します(-3600)が、使用するtimestamp with time zoneと、「エラー」または違いは「1970-01-01」がタイムゾーンを取得するためであることがわかります+01。 create table my_table_2(created timestamp with time zone); CREATE TABLE insert into my_table_2 (created) values (now()), ('1970-01-01'); INSERT 0 2 select created, …

2
タイムスタンプをPostgreSQLに最適に保存する方法は?
私はPostgreSQL DBの設計に取り組んでおり、タイムスタンプをどのように保存するのが最善か疑問に思っています。 仮定 異なるタイムゾーンのユーザーは、すべてのCRUD機能にデータベースを使用します。 私は2つのオプションを見ました: timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC') bigint NOT NULL DEFAULT 以下のためにtimestamp私は、INSERTモーメントの正確な(UTC)のタイムスタンプを表すことになり、文字列を送信します。 以下のためにbigint私はまったく同じことを格納し、その数形式のでしょう。(タイムゾーンの問題はミリスがサーバーに引き渡される前に処理されるため、UTCでは常にミリスです。) を格納するbigintことの主な利点の1つは、正しい形式のタイムスタンプの受け渡しが単純な数値よりも複雑であるため(Unix Epocからのミリ秒)、格納および取得が容易になることです。 私の質問は、どちらが最も柔軟な設計を可能にし、各アプローチの落とし穴になる可能性があるものです。


1
タイムゾーンを使用せずにUnix時間をPostgreSQLのティムスタンプに変換する方法は?
タイムゾーンがインドのタイムゾーン(UTC +5:30)に設定されているサーバーでPostgreSQLデータベースを実行しています このように作成されたテーブルにいくつかのデータがあります: CREATE TABLE "CLOUDDATA" ( "CD_Tm_Obs" timestamp without time zone, "CD_Avg_Cloud" double precision ) データをクエリし、特定の時間の値を取得したい。入力はUnixタイムスタンプ(1970年1月1日からの秒数)になります UNIXの時刻をタイムスタンプに変換する唯一の方法は、次のとおり select to_timestamp(TRUNC(CAST(1395036000 AS bigint)))です。しかし、これはタイムゾーンでタイムスタンプを作成します。データはにtimestamp without time zoneあるため、結果は得られません。 タイムゾーンなしでUnix時間をPostgreSQLのティムスタンプに変換する方法は?

1
Postgresの0001年のタイムゾーンに、UTCからのこのようなクレイジーなオフセットがあるのはなぜですか?
Postgres 9.5では、年0001(ゼロ0000年なし)を試しているときに以下の結果が表示されたことに驚きました。 のオフセット-07:52:58? いくつかのサンプルコード。Iの混合使用することを注意TIMESTAMP WITH TIME ZONEしてTIMESTAMP WITHOUT TIME ZONE、慎重に読んでください。 SET TIME ZONE 'America/Los_Angeles' ; SELECT (TIMESTAMP WITH TIME ZONE '2015-01-01 00:00:00.0', TIMESTAMP WITH TIME ZONE '0001-01-01 00:00:00.0Z', TIMESTAMP WITHOUT TIME ZONE '0001-01-01 00:00:00.0Z') ; ("2015-01-01 00:00:00-08","0001-12-31 16:07:02-07:52:58 BC","0001-01-01 00:00:00") 私はその2番目の値に驚いています0001-12-31 16:07:02-07:52:58 BC。America/Los_AngelesUTCから8時間遅れているのと同じように、オフセットを8時間戻し-08:00ます。しかし-08:00、オフセットの代わりにです-07:52:58。どうして? UTCで問題なし UTCでデータを入力する場合、このような問題はありません。 SET TIME ZONE 'UTC' ; …

3
ゾーン名がPostgreSQLのバグの「AT TIME ZONE」
私はこのstackoverflowの質問に答えていて、奇妙な結果を見つけました: select * from pg_timezone_names where name = 'Europe/Berlin' ; name | abbrev | utc_offset | is_dst ---------------+--------+------------+-------- Europe/Berlin | CET | 01:00:00 | f そして次のクエリ select id, timestampwithtimezone, timestampwithtimezone at time zone 'Europe/Berlin' as berlin, timestampwithtimezone at time zone 'CET' as cet from data ; id | timestampwithtimezone | …


3
ミリ秒での時間のデータベースへの保存
データベースへの「時間」の格納に関する簡単な質問です。ユーザーの実行時間を00:00:00:00(時間、分、秒、ミリ秒)の形式でログに記録しています。 私はもともとそれを保存するつもりでしたTIMEが、MySQLがこのタイプのミリ秒をサポートしていないことに気付きました。 ユーザーのストップウォッチから取得した実際の時間を保存します。ユーザーが実行して終了した時間ではありません(これは挿入される前に計算されます)。 使用するのに最適なフィールドタイプは何ですか?doubleまたはのどちらかを考えfloatていましたが、うまくいくかわかりませんか?

3
MySQLで西暦1000年より前の日付を処理する最良の方法は?
1000 ADより前に拡張するレコードのデータベースを作成していますが、MySQLのDateおよびDateTimeフィールドは1000から始まる日付のみをサポートしています。 bigint型を使用してUnixタイムスタンプを使用して1970年1月1日の前/後の秒数をカウントする方法、またはより広い日付範囲をサポートするデータベースソフトウェアに切り替える方法よりも便利な方法はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.