0

我有一个日期列,日期为 2012-02-25 格式。我需要将其更新到 12-02-25 但不知道该怎么做?

谢谢!

编辑:在查看了所有答案之后,似乎我还不够清楚。我不想改变我的类型,也不想玩输出。我想将现有的日期列从 2012 年更新到 12 年。如果有的话,它应该是一个 UPDATE 查询,我只是不确定如何编写它。感谢到目前为止的所有评论。

编辑 2:看来我的问题没有意义,我不知道您不能将 DATE 存储为 xx-xx-xx。无论如何谢谢!

4

5 回答 5

4

无法以这种格式将日期存储'12-02-25'在具有DATEas 数据类型的列中。您可以将其存储在具有数据类型的列中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

您应该使用日期时间类型。否则你会遇到一些问题(排序,与日期相关等)

您可以更改日期的显示作为输出。

于 2012-08-24T05:48:28.267 回答
0

从我的MySQL 参考

两位数年份的日期值不明确,因为世纪是未知的。这样的值必须解释为四位数的形式,因为 MySQL 在内部使用四位数存储年份。

对于 DATETIME、DATE 和 TIMESTAMP 类型,MySQL 使用以下规则解释使用模糊年份值指定的日期:

00-69 范围内的年份值将转换为 2000-2069。

70-99 范围内的年份值将转换为 1970-1999。

对于 YEAR,规则相同,但有以下例外:将数字 00 插入 YEAR(4) 会产生 0000 而不是 2000。要为 YEAR(4) 指定零并将其解释为 2000,请将其指定为字符串“0”或“00”。

请记住,这些规则只是对您的数据值的含义提供合理猜测的启发式方法。如果 MySQL 使用的规则没有产生您需要的值,您必须提供包含四位数年份值的明确输入。

于 2012-08-24T05:49:59.427 回答
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 回答