2008年10月10日

[mysql 14643] Re: MySQL5.026のDATE型のINSERTの挙動を、MySQL4.026の挙動に合わせたい

平塚です。

ちょっと無理みたいです。

On Wed, 08 Oct 2008 11:15:15 +0900
Taichiro Yoshida <taichiro.yoshida@xxxxx> wrote:

> しかしMySQL5.026では、無効な日付と解釈され"0000-00-00"がINSERTされます。


5.0では、年月日などの区切り文字に使えるのは
「latin1 で Punctuation フラグのたった文字」だけです。

このへんの文字のことです ⇒ !"#$%&'()*+,-./:;<=>?[\]^_`

sql_common/my_time.cc を見る限り、
my.cnf から設定を持ってきている様子はありません。

ちなみに繰り返してもよいのでこんなのは動いてしまいます。
insert into xxx values ('2008!!!10#(((10 11&&50-=-=-30');

また、latin1 以外のキャラクタセットをまったく意識していないので
一部の漢字は運良く通る場合があります。

mysql> insert into xxx values ('2008槽01漕02 11燥22争35');
Query OK, 1 row affected (0.06 sec)

# これはバグだと思います。運良く通ることを期待してはいけません


> MySQL4.026では、
>
> INSERT INTO test (test_date) VALUES("2008年10月07日");
>
> のように、DATE型に"YYYY年MM月DD日"のように日本語が混じっていても、
> "2008-10-07"という値がINSERTされます。

4.0.26はきちんと調べていませんが、どうやら
「数字以外は全部区切り文字」とみなしているようです。

--
平塚貞夫 hiratsuka.sadao@xxxxx

投稿者 xml-rpc : 2008年10月10日 12:33
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/77929
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。