0

2012-02-25 形式の日付を含む DATE 列があります。12-02-25 に更新する必要がありますが、どうすればよいかわかりません。

ありがとう!

編集:すべての回答を確認した後、私は十分に明確ではないようです. 私は自分のタイプを変更したくありませんし、出力をいじりたくもありません。既存の日付列を 2012 から 12 に更新したいのですが、どちらかといえば UPDATE クエリである必要があります。書き方がわかりません。これまでのすべてのコメントに感謝します。

編集 2: 私の質問が意味を成さなかったようです。DATE を xx-xx-xx として保存できないことを知りませんでした。とにかくありがとう!

4

5 に答える 5

4

データ型'12-02-25'を持つ列にこの形式で日付を格納することはできません。DATEデータ型が as の列に格納してから、CHAR(8)次のUPDATEクエリを使用できます。

UPDATE table_name
SET date_column = DATE_FORMAT(date_column, '%y-%m-%d');

しかし、より良いアプローチは、それをDATEフォーマットでのみ保存DATE_FORMATし、テーブルからデータを取得するときに関数を使用することです。

于 2012-08-24T06:01:17.293 に答える
1

mysql のdate_format関数を使用して、必要に応じて表示します。

SELECT DATE_FORMAT(youdatecolumn, '%y-%m-%d') FROM yourtable
于 2012-08-24T05:53:08.327 に答える
0

サンプルコード 試してみるコード

public class MyDateParser {

public static void main(String args[]) throws ParseException {
    String s = "2011-03-27";// or 3/27/2011

    SimpleDateFormat dateFormatter = s.length() == 9 ? new SimpleDateFormat(
            "yyyy-MM-dd") : new SimpleDateFormat("yyyy-MM-dd");
    Calendar calendar = Calendar.getInstance();
    Date date = dateFormatter.parse(s);
    calendar.setTime(date);



    SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yy-MM-dd");

    String strss = simpleDateFormat2.format(date);
    System.out.println(strss);

}

}

于 2012-08-24T05:58:15.937 に答える
0

私のMySQLリファレンスから:

年が 2 桁の日付値は、世紀が不明なためあいまいです。MySQL は 4 桁を使用して年を内部的に格納するため、このような値は 4 桁の形式に解釈する必要があります。

DATETIME、DATE、および TIMESTAMP タイプの場合、MySQL は次のルールを使用して、あいまいな年の値で指定された日付を解釈します。

00 から 69 の範囲の年の値は、2000 から 2069 に変換されます。

70 から 99 の範囲の年の値は、1970 から 1999 に変換されます。

YEAR の場合もルールは同じですが、YEAR(4) に数値の 00 を挿入すると、2000 ではなく 0000 になります。YEAR(4) にゼロを指定して 2000 と解釈するには、文字列として指定します。 「0」または「00」。

これらのルールは、データ値が何を意味するかについて合理的な推測を提供するヒューリスティックにすぎないことに注意してください。MySQL で使用されるルールが必要な値を生成しない場合は、4 桁の年の値を含む明確な入力を提供する必要があります。

于 2012-08-24T05:49:59.427 に答える
0

日時型を使用する必要があります。そうしないと、いくつかの問題が発生します(並べ替え、日付の関連付けなど)。

出力される日付の表示を変更できます。

于 2012-08-24T05:48:28.267 に答える