• ベストアンサー

freeBSDとturbolinuxのposgreSQLのdate型の表示について

freeBSDとturbolinuxの両方でpostgreSQLを使っています。 date default current_timestamp型のカラムを持つデータをselectで見たとき、freeBSDでは秒単位まで表示されますが、linuxのほうでは年月日のみしか表示されません。 linuxのほうでも秒単位までデータを持っているのでしょうか。linuxのほうでも分単位のデータが必要なので気になっています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kalze
  • ベストアンサー率47% (522/1092)
回答No.1

なんかデータ型についての認識がおかしいような。 >date default current_timestamp型 と書かれていますが、 date型のデフォルト値current_timestampというカラムですよね。 参考URLは8.1.4のマニュアルですが、見てみてください。 date型は、年月日用の型です。 仮に秒単位まで表示されても、0で桁埋めしてあるか、日よりも細かい精度は一切保証されません。 つまり、日よりも小さい時間以下の単位の値がまったくでたらめな数値が返ってきても文句は言えないということです。 秒単位まで精度が欲しいのであれば、素直にtimestamp型を使うことをお勧めします。

参考URL:
http://www.postgresql.jp/document/pg814doc/html/datatype-datetime.html
bolder
質問者

お礼

すいません。まったくそのとおりでしたww 何を勘違いしていたかdate型でやってますね・・・ご指摘ありがとうございました。

関連するQ&A

  • DB2のTimestamp型

    DB2のTimestamp型のカラムに 'Current-Timestamp'以外で 設定可能なデフォルト値というのは あるのでしょうか?

  • Mysql DATE型のDEFAULT値

    初心者ですが、よろしくお願いします。 Mysqlでテーブルを作成して、カラムにDATE型を指定するとDEFAULT値が設定できません、、、。 これはMysqlの仕様なのでしょうか? ちなみに、TIMESTAMP型だと、'DEFAULT CURRENT_TIMESTAMP'でDEFAULT設定できます、、。 -- クエリ CREATE TABLE test ( column_name DATE NOT NULL DEFAULT CURRENT_DATE ); >> エラー ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURRENT_DATE)' at line 1 Mysql::ABも調べたのですが、よく分かりませんでした。 よろしくお願いします。 MySQLバージョン 5.0.41

  • oracleのDate型

    Ceate table test( field1 date ) insert into test values(current_timestamp); 上記の処理でDate型の列にcurrent_timestampデータを入れても、年月日までしかはいらないのですが、yyyy/mm/dd hh24:mi:ssの形で はできないのでしょうか?oracleは10gです。

  • Turbolinux7とWindows98のデュアルブートについて

    先日、使用しているパソコンにTurbolinux7とWindows98をインストール するためにすべてHDをフォーマットしパーティションを切り直しました。 最初はTurbolinux7を入れた後にWindows98をインストールすると、 最初マシンを立ち上げた時に、どっちのOSを使用するのか選択する画面が 表示されないままWindowsが起動されました。 それはまずいということで、再度ディスクを空にした後、 今度はWindows98をインストールした後、Turbolinux7をインストールしたところ、 マシン起動時にLINUXが起動し、OSを選択できるようになったのですが、 デフォルトの選択肢がLINUXの方になっており、 自分でリターンキーを押さない限り、OSが起動しないような画面でした。 OSが選択できるような画面になったのはいいのですが、 自分としてはWindowsの方が使用率が多いために、選択肢が デフォルトがWindowsの方を 指し示している状態で、数秒後立ってもなにもキー入力がなかった場合は Windowsの方を起動させたいのですが、 何かよい方法はないでしょうか?

  • timestamp型の表示

    PHPとPostgreSQLでサイトを作っています。 そこで、pgSQLの中にあるtimestamp型のフィールドから PHPでデータを取り出してます。 そのまま取り出すと、「2002-09-18 23:29:00+09」こういう形になります。 このデータを「02/09/18(Wed) 23:29」みたいに表示させたいのですが。。。 PostgreSQL 7.0.2 PHP4 初歩的な質問かもしれませんが宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHP MySQL epoch fromについて

    PHP5.1.6 MySQL5.5 PostgreSQLからMySQLへの移行作業を行っているのですが、以下のSQLをMySQL用に変換したいと思っています SELECT (case when (volume + floor(extract(epoch from (current_timestamp - check_time)) / 900)) < volume2 then (volume + floor(extract(epoch from (current_timestamp - check_time)) / 900)) else volume2 end) as volume FROM table MySQLにPostgreSQLのepoch fromに当たる関数はありませんでしょうか?

    • ベストアンサー
    • MySQL
  • PostgreSQLのカラムに"user"という名前のカラムがある場合のデータ表示について

    PostgreSQLを使い始めたのですが、わからないことがあるので知恵をおかしください。 ユーザー名を管理するテーブルを以下のように作成しました。 テーブル:table  |No|user|from |  |1 |Atom|tokyo|  |2 |Boss|izu |  |3 |Cat |chiba| このテーブルのデータをuser部分のみ表示するに以下のSQL文を作成しました。  SELECT user FROM table 上記のSQLを実行したのですが、userのカラム部分がcurrent_userとテーブルのカラムではなくセッションの情報を取得してきてしまいます。 試しに  SELECT * FROM table で実行するとテーブルのデータを取得でき、  SELECT table.user FROM table で実行するとsyntax errorとエラー表示されデータが結果が表示されません。 userをセッション情報としてではなく、テーブル(table)のデータとして取得したい場合はどのようにしたらいいのでしょうか? よろしくお願いします。

  • FreeBSDのインストールが出来ません。

    FDを3枚(boot,kern1,kern2)を使って、Welcome FreeBSD!のアスキーアートが表示される所まで出来ました。 8.Rebootの下にある、カウント表示が、0になったら、以下のようなメッセージ分がズラッと表示されて、コンピュータ自体が再起動します。 コレで、インターネットが一向に進みません。 1~8のなんとなく当てはまりそうなものを選んで、1から順番に4まで、1から順番に4まで、やってみたのですが、再起動しました。 これは、どうすれば直るのでしょうか?よろしくお願いします。 Welcome to FreeBSD! 1. Boot FreeBSD [default] 2. Boot FreeBSD with ACPI disabled 3. Boot FreeBSD in Same Mode 4. Boot FreeBSD in single user mode 5. Boot FreeBSD with verbose logging 6. ESCAPE to loader promp! 7. Boot FreeBSD with USB keyboard 8. Reboot Select option, [Enter] for default or [Space] to pause timer 0_ Copyright (c) 1992-2005 The FreeBSDProject. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 6.0-RELEASE #0: Thu Nov 3 09:36:13 UTC 2005 root@x64.samsco.home:/usr/obj/usr/src/sys/GENERIC Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel Celerom (448.06-Mhz 686-class CPU) Orign = "GenuineIntel" Id = 0x683 Steping = 3 Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE.CX8,SEP,MTTR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE> real memory = 201261056 (191 MB) avail memory = 183234560 (174 MB) panic: npx:can't create intr Uptime: 1s Automatic reboot in 15 seconds - press a key on the console to abort Rebooting...

  • ○日以内のレコード取得について

    本日から○日以内のレコードをセレクトしたいのですが ○日の部分が可変のためJavaのpreparedstatementを使用します。 例) SELECT timedate FROM testtb WHERE timedate BETWEEN current_timestamp + '-30days' AND current_timestamp; ※timedateはDATE型です のような事をしたいのですが、 「30」の部分を?にすると The column index is out of range: 1, number of columns: 0エラーになります。 intervalの使用も考え色々調べていたのですが、いまいちやり方が分かりません。 何か方法をご存知の方、ご教授お願い致します。

  • postgreSQLで分からないことがあります。

    postgreSQLで分からないことがあります。 よろしくお願いします。 下にあるtblというテーブルがあったとき。 下のSQLを実行するとデータがうまく取れているんですが、 CURRENT_DATEは日付型でSUBSTRでとりだした日付は文字列 なのに何故正しく比較できているのでしょうか? 日付型の形式の文字列であれば、RDBMSがかってに日付型にしてくれるのでしょうか? tblテーブル *sdateとedateはtimestamp型です。 sdate      | edate | ----------------------------------------- 2010-5-1 10:00:00 | 2010-5-2 13:00:00| SELECT * FROM tbl WHERE CURRENT_DATE BETWEEN SUBSTR(sdate, 1, 10) AND SUBSTR(edate, 1, 10)