INSERT INTO m_listener (socialid, userid, username, create_at) VALUES (%s, %s, %s, current_timestamp); stackoverflow.com 記録として残しておきたいブログ 主にプログラミングについて書きます。 こんにちは、飯塚です。 普段の業務の中で1分値、30分値など、時間とともに変わるデータを扱うことが多いです。今回は日時の加算や、文字列⇔日付型の変換など、時間に依存するテーブルを扱う場合に、知っておくと便利なテクニックを備忘録としてまとめてみました。 文字列型からtimestamp型への変換に際し、ミリ秒MSまたはマイクロ秒USの値は小数点の位置の後の秒の桁として使用されます。例えば、to_timestamp('12:3', 'SS:MS')は3ミリ秒ではなく300ミリ秒です。なぜなら変換においてこれは12 + 0.3と計算されるからです。 to_char関数を使い、timestamp型に格納された値から日付を取り出し、出力フォーマットを加工する方法を以下に記します。 本資料は、参考資料に記した PostgreSQLオンラインマニュアル の一部を引用および利用しています。 to_timestamp では、ミリ秒( MS )またはマイクロ秒( US )フィールドが小数点以下の秒の数字として使用されます。 たとえば、 to_timestamp('12.3', 'SS.MS') は3ミリ秒ではなく300ミリ秒です。これは、変換で12 + 0.3秒として処理されるためです。 sqlでの日付、時刻、曜日の取得方法、フォーマットの変更方法です。 各種データーベースによって取得方法に違いがありますので注意してください。 年の演算(年加算、年減算) ・年の演算を行うには、次のようにする。 PostgreSQL 9.2.23を利用しています。 テーブルに"20180417T051318400"というデータが文字列として保存されています。 これを日付フォーマット変換したいです。select文でto_dateを用いてやるには"YYYYMMDD・・ Redshiftでtimestamp型のカラムを条件に検索することがあると思います。先日、方法によって処理時間に差が出るのか試してみたのですが自分的には驚きの結果でした。4つのパターンを3回ずつ試して時間を計ってみました … 最初PostgreSQLを使い始めたときに、Date型とTime型をどうすれば、TIMESTAMP型に変換できるのか分からず右往左往していたのが懐かしいです。システムによっては、時間に依存するデータをメインで使うこともあるので、知っておくと便利だと思います。 PostgreSQL 編16 - 日付計算、曜日、月末日、時間計算、期間計算、日付抽出. なんで?バグ? と思って、ドキュメント見直したら仕様でした! 時刻取得にnow()を使ってたんですが、トランザクション内で常に同じ値を返すらしい。 now()はCURRENT_TIMESTAMPと同じもので、伝統的なPostgreSQL関数です。 transaction_timestamp()はCURRENT_TIMESTAMP同様… time型やtimestamp型の省略可能な引数(p)は、秒の小数点以下の精度の指定です。指定する場合は0から6程度のようです。 日付や時刻の入力は、様々なフォーマットで可能なようですが、どう判断されるか曖昧な場合はDateStyleによって決まります。