mysql:4092
From: Seiji Tateyama <Seiji Tateyama <tateyan@xxxxxxxxxx>>
Date: Mon, 30 Jul 2001 16:48:34 +0900
Subject: [mysql 04092] Re: 日付けを入力したい
たてやんっす
tamuzin2 <tamuzin@xxxxxxxxxx> さんは 日付けを入力したい にて
t> 宮川様お教え頂き有難うございます。
t>
t> 「Date::Calc」はたしかC言語環境が導入されてないと実行できないですよね。
t> 私としましては「localtime」を使用してデータベースに入力させたいと思っている
t> のですが「localtime」ではどうすればよいのでしょうか?
t>
t> Perlのプログラム的には下記のような形で日付の取得をしているのですが下記の
t> ようなプログラムの場合ではどのようにすればデータベースに入力できるのでしょ
t> うか?
perl スクリプトを見ましたが
1)localtime を入力したいのか?
2)localtime を取得後 何らかの変換があって
それを入力したいのか
という情報が分からないのですが...
2)ではないと仮定して
単にローカルタイムを突っ込みたいなら
$ENV{'TZ'} = "JST-9";
use POSIX qw(strftime);
my $datetime=strftime "%Y-%m-%d %X" ,localtime;
で宮川氏の スクリプトをお借りして
my $dbh = DBI->connect('dbi:mysql:test', '', '', {
RaiseError => 1,
}) or die $DBI::errstr;
$dbh->do('INSERT INTO foo (datetime) VALUES (?)', undef, $datetime);
でも良いですし
さらに どうせだったら MySQLサーバの時間を使っちゃうとか
$dbh->do('INSERT INTO foo (datetime) VALUES now()');
とか(違うサーバならこれはつかえないかぁ)
あ 蛇足ですが
use POSIX qw(strftime);
my $datetime=strftime "%Y-%m-%d %X" ,localtime;
2001-07-30 16:31:34
という形式に直接直してます
man date
で出てくる 形式で使えるので便利に使ってます (^^ゞ
%Y year (1970...)
%m month (01..12)
%d day of month (01..31)
%X locale's time representation (%H:%M:%S)
残念ながら日本語(曜日を日本語でつかうとか)は変換しないと使えないですが
($dateis,$week) = split(/,/,strftime "%Y/%m/%d %X,%w" ,localtime);
$youbi= ('Sun','Mon','Tue','Wed','Thu','Fri','Sat', \
'日','月','火','水','木','金','土')[$week +7*$date_type];
とか... $date_type は 0 英語 1 日本語 ときめうち
=========
彡彡从 たてやんっす
d□/□-b <tateyan@xxxxxxxxxx>
ヽ"ー"丿
4072 2001-07-28 18:07 ["tamuzin2" <tamuzin@] 日付けを入力したい 4086 2001-07-30 00:50 ┗[Tatsuhiko Miyagawa <] 4089 2001-07-30 13:18 ┗["tamuzin2" <tamuzin@] 4090 2001-07-30 13:47 ┣[Tatsuhiko Miyagawa <] -> 4092 2001-07-30 16:48 ┗[Seiji Tateyama <tate] 4095 2001-07-30 22:25 ┗[tateyan <tateyan@xxx] 4108 2001-08-01 10:42 ┗["tamuzin2" <tamuzin@] Re: 日付けを入力したい【解決】