HiiHahWIKI - making some notes for... -
E71:MySQLでの日付、時刻のインサートについて
をテンプレートにして作成
開始行:
*E71:MySQLでの日付、時刻のインサートについて [#jea7bdf2]
MySQLで日付、時刻をインサート、アップデートしたいとき、ど...
***対象のテーブル [#u9d3a420]
こんなテーブルの操作をします。
CREATE TABLE `test_db`.`board` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(32) default NULL,
`email` varchar(52) default NULL,
`comment` text,
`uptime` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
まあ、持ってる要素は
-id
-name
-email
-comment
-uptime
です。
このなかの、「uptime」は「datetime」型なんですけど、これ...
***日付のインサート [#q599e57c]
まあ、まずはこのテーブルへのインサート。
時刻は適当に決めうちで、2009年8月3日としましょう。すると...
insert into board
values( null,'testuser', 'testmail','testcomment',cast(...
おお、なんか見慣れぬものが最後に、、、
ここでポイントは2つ。
-auto_incrementを指定しているにnullを指定すると、自動で値...
(日付の話はぜんぜん関係ありません笑)
-日付をインサートする場合、'''cast'''関数を利用する!
cast関数は、簡単には
cast ( expression as type )
って使います。
expressionってのは、まあ文字列とか別な関数とか、いろいろ...
typeってのは、キャストする型を指定するんですな。
このcastがみそ!
まあ、マニュアルに載ってるんですけど、やってみるまではい...
だって、Oracleだったら「to_date」だからな~
まあまあ、cast関数でやれっていわれてるんだから、やればい...
さてさて、色々やってみます。
***日付のアップデート [#ofa40fd6]
先にインサートしたをアップデートしてみます。
update board set uptime = cast('2009-08-10' as date ) wh...
こんな感じで出来ます。※idは自動で2が入ってました。
***時刻も含めてインサート、アップデートしたい場合は???...
時刻も含めて、つまり日時を入れたい場合、castのtypeにdatet...
早速、インサートして、アップデートしてみましょう。
insert into board
values( null,'testuser', 'testmail','testcomment',
cast('2009-08-03 23:58:01' as datetime))
これで、2009年8月3日の23時59分01秒がインサートできました。
次に、この時間を2009年8月25日の11時38分23秒にアップデート...
update board set uptime = cast('2009-08-25 11:38:23' as ...
これで、ばっちりアップデートできます!
***現在時刻をインサートしたい [#iea6ea14]
プログラムで、いちいち現在時刻をとってきて、上みたいにcas...
まあ、現在時刻は便利にいれる方法があります。
■現在'''日付'''がほしい場合
cast ( now() as date)
■現在'''時刻'''がほしい場合
cast ( now() as datetime)
これで、sql文の中で自動的に現在時刻をとってきて、それぞれ...
インサートで日付の場合
insert into board
values( null,'testuser', 'testmail','testcomment',
cast( now() as date))
アップデートで日時の場合
update board set uptime = cast( now() as datetime ) wher...
かんたんですな~
***まとめ(端的に言うと) [#xa973328]
cast関数を使います。
日付の場合は、typeにdateを指定します。
日時(時刻入り)の場合は、typeにdatetimeを指定します。
***参考リンク [#za7e2f94]
-http://dev.mysql.com/doc/refman/5.1/ja/cast-functions.ht...
MySQLのマニュアルのページです。
終了行:
*E71:MySQLでの日付、時刻のインサートについて [#jea7bdf2]
MySQLで日付、時刻をインサート、アップデートしたいとき、ど...
***対象のテーブル [#u9d3a420]
こんなテーブルの操作をします。
CREATE TABLE `test_db`.`board` (
`id` int(10) NOT NULL auto_increment,
`name` varchar(32) default NULL,
`email` varchar(52) default NULL,
`comment` text,
`uptime` datetime default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
まあ、持ってる要素は
-id
-name
-email
-comment
-uptime
です。
このなかの、「uptime」は「datetime」型なんですけど、これ...
***日付のインサート [#q599e57c]
まあ、まずはこのテーブルへのインサート。
時刻は適当に決めうちで、2009年8月3日としましょう。すると...
insert into board
values( null,'testuser', 'testmail','testcomment',cast(...
おお、なんか見慣れぬものが最後に、、、
ここでポイントは2つ。
-auto_incrementを指定しているにnullを指定すると、自動で値...
(日付の話はぜんぜん関係ありません笑)
-日付をインサートする場合、'''cast'''関数を利用する!
cast関数は、簡単には
cast ( expression as type )
って使います。
expressionってのは、まあ文字列とか別な関数とか、いろいろ...
typeってのは、キャストする型を指定するんですな。
このcastがみそ!
まあ、マニュアルに載ってるんですけど、やってみるまではい...
だって、Oracleだったら「to_date」だからな~
まあまあ、cast関数でやれっていわれてるんだから、やればい...
さてさて、色々やってみます。
***日付のアップデート [#ofa40fd6]
先にインサートしたをアップデートしてみます。
update board set uptime = cast('2009-08-10' as date ) wh...
こんな感じで出来ます。※idは自動で2が入ってました。
***時刻も含めてインサート、アップデートしたい場合は???...
時刻も含めて、つまり日時を入れたい場合、castのtypeにdatet...
早速、インサートして、アップデートしてみましょう。
insert into board
values( null,'testuser', 'testmail','testcomment',
cast('2009-08-03 23:58:01' as datetime))
これで、2009年8月3日の23時59分01秒がインサートできました。
次に、この時間を2009年8月25日の11時38分23秒にアップデート...
update board set uptime = cast('2009-08-25 11:38:23' as ...
これで、ばっちりアップデートできます!
***現在時刻をインサートしたい [#iea6ea14]
プログラムで、いちいち現在時刻をとってきて、上みたいにcas...
まあ、現在時刻は便利にいれる方法があります。
■現在'''日付'''がほしい場合
cast ( now() as date)
■現在'''時刻'''がほしい場合
cast ( now() as datetime)
これで、sql文の中で自動的に現在時刻をとってきて、それぞれ...
インサートで日付の場合
insert into board
values( null,'testuser', 'testmail','testcomment',
cast( now() as date))
アップデートで日時の場合
update board set uptime = cast( now() as datetime ) wher...
かんたんですな~
***まとめ(端的に言うと) [#xa973328]
cast関数を使います。
日付の場合は、typeにdateを指定します。
日時(時刻入り)の場合は、typeにdatetimeを指定します。
***参考リンク [#za7e2f94]
-http://dev.mysql.com/doc/refman/5.1/ja/cast-functions.ht...
MySQLのマニュアルのページです。
ページ名: