質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

Q&A

解決済

2回答

15571閲覧

PostgreSQLでdate型とtime型でテーブルを作成した時の挿入文について

退会済みユーザー

退会済みユーザー

総合スコア0

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

0グッド

0クリップ

投稿2017/11/16 07:57

###前提・実現したいこと
PostgreSQLでデータを挿入した日時をデータベースに記録しようとしています。
PostgreSQLでdate型とtime型でテーブルを作成しましたが、INSERT文で挿入する際にはどのように書けば良いかわからず、困っています。

データ型に関しては以下のサイトを参考にしたのですが、INSERT文で手動で書くのではなく、データ挿入時に自動で入力されるものを実装したいです。

参考サイト

###該当のソースコード
CREATE文

sql

1create table purchase( 2 cid integer, 3 iid integer, 4 ptime time, 5 pdate date 6 );

INSERT文

sql

1insert into purchase(cid, iid, ptime, pdate) 2values (1, 1, 11:10, 2017-11-16);

###補足情報(言語/FW/ツール等のバージョンなど)
Macのターミナルから入力しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

例として現在時刻をいれるSQLを作成しました。

c

1create temp table purchase( 2 cid integer, 3 iid integer, 4 ptime time, 5 pdate date 6 ); 7 8 9insert into purchase(cid, iid, ptime, pdate) 10 values(1, 1, now()::time, now()::date); 11 12 select * from purchase; 13 14 cid | iid | ptime | pdate 15-----+-----+-----------------+------------ 16 1 | 1 | 17:01:35.666099 | 2017-11-16

values()の中のcastは無くても結果は一緒ですが、分かり易いかなと思い入れました。
now()はCURRENT_TIMESTAMPと同じですが、postgresの因習

表示の際に編集されてはどうでしょうか?

sql

1select cid, iid, to_char(ptime,'HH24:MI:SS'), pdate from purchase; 2 3 cid | iid | to_char | pdate 4-----+-----+----------+------------ 5 1 | 1 | 17:27:34 | 2017-11-16

投稿2017/11/16 08:09

編集2017/11/16 08:33
A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/11/16 08:26

ご回答いただきましてありがとうございます。 様々な表記があり、どのように使い分ける必要があるのかも学んでいきたいと思います。
A.Ichi

2017/11/16 08:38

日付と時刻はtimestampで保存して、使う際に分けても良いかと考えます。
退会済みユーザー

退会済みユーザー

2017/11/20 03:26

ありがとうございます
guest

0

ベストアンサー

values (1, 1, current_time, current_date);

みたいな書き方ではだめですかね?

投稿2017/11/16 08:07

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/11/16 08:25

ご回答いただきましてありがとうございました。 追加の質問で恐縮ですが、 time型だと、「17:18:22.097599 」のように表示されてましたが、「.097599」の部分を削除するにはCREATE文をどのように変更すべきか アドバイスいただけましたら幸いです。
退会済みユーザー

退会済みユーザー

2017/11/20 03:27

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問