- 2007年6月20日 12:35
- PHP
久々に PostgreSQL をさわることになって、タイムスタンプから2006年のレコードだけを抜き出したいなーとSQLを書こうとしたら、そういえば PostgreSQL では、タイムスタンプを指定したフォーマットで返す関数はなんなんだろ、と思ったので、MySQL と PostgreSQL でよく使われると思われる日付フォーマット表を作ってみた。
MySQLとPostgreSQL日付フォーマット関数の違い
| フォーマット | MySQL | PostgreSQL |
|---|---|---|
| 年(2006~2007) | date_format(time,"%Y") | to_char(time,'YYYY') |
| 年(06~07) | date_format(time,"%y") | to_char(time,'YY') |
| 月(01~12) | date_format(time,"%m") | to_char(time,'MM') |
| 月(1~12) | date_format(time,"%c") | |
| 日(01~31) | date_format(time,"%d") | to_char(time,'DD') |
| 日(1~31) | date_format(time,"%e") | |
| 月-文字(January~December) | date_format(time,"%M") | to_char(time,'Month') |
| 月-文字(Jan~Dec) | date_format(time,"%b") | to_char(time,'Mon') |
| 曜日-文字(Sunday~Saturday) | date_format(time,"%W") | to_char(time,'Day') |
| 曜日-文字(Sun~Sat) | date_format(time,"%a") | to_char(time,'Dy') |
| 曜日-数字(0=Sun~6=Sat) | date_format(time,"%w") | |
| 曜日-数字(1=Sun~7=Sat) | to_char(time,'D') | |
| 時(00~23) | date_format(time,"%H") | to_char(time,'HH24') |
| 時(0~23) | date_format(time,"%k") | |
| 分(00~59) | date_format(time,"%i") | to_char(time,'MI') |
| 秒(00~59) | date_format(time,"%s") | to_char(time,'SS') |
気をつけるべきなのは、曜日を数値として返す部分。MySQLでは 0 が日曜を表すのに比べ、PostgreSQL では 1 が日曜を表し 7 まである。
参考リンク
- Newer: あわせて読みたいに表示されたブログに訪れてみた
- Older: MySQLだけで文字列を一括置換する
Comments:1
- Anonymous 2009年9月 4日 12:18
ありがとう。
参考になりました。
Trackbacks:1
- TrackBack URL for this entry
- http://blog.tofu-kun.org/mt-tb.cgi/329
- Listed below are links to weblogs that reference
- MySQLとPostgreSQLの日付フォーマットの違い from Webプログラマー+WebデザイナーなZARU日記
- [mysql][Programing][PHP]タスク工数管理システム構築 from ふわっとサラリーマン 2009-09-13 (日) 12:33
- 久々に個人使用のプログラムかいたよー いろいろあって,日常の個人タスクと工数の管理したくなったのでフルスクラッチで書いてみた. 開発環境emacs + ...
