mySql中的更新日期
我有一个日期栏,日期为2012-02-25格式。我需要将其更新为12-02-25,但不确定如何进行 谢谢 编辑:在回顾了所有的答案之后,我似乎还不够清楚。我不希望更改我的类型,也不希望处理输出。我想将现有的date列从2012更新为12。它应该是一个更新查询,如果有的话,我只是不知道如何编写它。感谢到目前为止的所有评论mySql中的更新日期,mysql,date,Mysql,Date,我有一个日期栏,日期为2012-02-25格式。我需要将其更新为12-02-25,但不确定如何进行 谢谢 编辑:在回顾了所有的答案之后,我似乎还不够清楚。我不希望更改我的类型,也不希望处理输出。我想将现有的date列从2012更新为12。它应该是一个更新查询,如果有的话,我只是不知道如何编写它。感谢到目前为止的所有评论 编辑2:我的问题似乎没有意义,我不知道你不能将日期存储为xx。无论如何谢谢你 您应该使用日期时间类型。否则,您将遇到一些问题(排序、与日期相关等) 您可以将日期的显示更改为输出。
编辑2:我的问题似乎没有意义,我不知道你不能将日期存储为xx。无论如何谢谢你 您应该使用日期时间类型。否则,您将遇到一些问题(排序、与日期相关等)
您可以将日期的显示更改为输出。您应该使用日期时间类型。否则,您将遇到一些问题(排序、与日期相关等) 您可以将日期显示更改为输出。从我的: 具有两位数年份的日期值不明确,因为世纪是 不知道。这些值必须解释为四位数形式,因为 MySQL使用四位数在内部存储年份 对于日期时间、日期和时间戳类型,MySQL解释日期 使用以下规则使用不明确的年份值指定: 范围为00-69的年份值转换为2000-2069 70-99范围内的年份值转换为1970-1999 对于年份,规则是相同的,只有一个例外:数字00 插入第(4)年,结果为0000,而不是2000。指明 第(4)年为零,并将其解释为2000年,将其指定为 字符串“0”或“00” 请记住,这些规则只是提供合理解释的试探法 猜测数据值的含义。如果MySQL使用的规则 如果不生成所需的值,则必须提供明确的 包含四位年份值的输入 从我的: 具有两位数年份的日期值不明确,因为世纪是 不知道。这些值必须解释为四位数形式,因为 MySQL使用四位数在内部存储年份 对于日期时间、日期和时间戳类型,MySQL解释日期 使用以下规则使用不明确的年份值指定: 范围为00-69的年份值转换为2000-2069 70-99范围内的年份值转换为1970-1999 对于年份,规则是相同的,只有一个例外:数字00 插入第(4)年,结果为0000,而不是2000。指明 第(4)年为零,并将其解释为2000年,将其指定为 字符串“0”或“00” 请记住,这些规则只是提供合理解释的试探法 猜测数据值的含义。如果MySQL使用的规则 如果不生成所需的值,则必须提供明确的 包含四位年份值的输入 使用mysql函数根据需要显示:
SELECT DATE_FORMAT(youdatecolumn, '%y-%m-%d') FROM yourtable
使用mysql函数根据需要显示:
SELECT DATE_FORMAT(youdatecolumn, '%y-%m-%d') FROM yourtable
示例代码try代码
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);
}
}示例代码尝试代码
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);
}
}不可能将日期以这种格式存储在数据类型为
日期的列中。您可以将其存储在数据类型为CHAR(8)
的列中,然后使用以下UPDATE
query:
UPDATE table_name
SET date_column = DATE_FORMAT(date_column, '%y-%m-%d');
但更好的方法是仅将其存储为DATE
格式,并在从表中检索数据时使用DATE\u格式
函数。不可能将日期存储为'12-02-25'
格式的列中的数据类型为DATE
。您可以将其存储在数据类型为CHAR(8)
的列中,然后使用以下UPDATE
query:
UPDATE table_name
SET date_column = DATE_FORMAT(date_column, '%y-%m-%d');
但更好的方法是仅将其存储为DATE
格式,并在从表中检索数据时使用DATE\u格式
函数。不幸的是,更改输出目前不是一个选项,如果可能的话,它确实需要在db端。约会时间也不行,我根本不想要时间;)@谢里夫:这个列是如何定义的?我希望它是“datetime”或“date”(不是“varchar”!)然而,您可以始终使用mySQL在datetime和任意字符串格式之间进行转换。如果您愿意,您可以这样做。但这是不合逻辑的。首先,您应该使用varchar格式。您可以将日期存储为yy-mm-dd(php$date=date(“y-m-d”)),但我指出了这一点。你会有问题的。我不明白你最后的答案。我不想把它改成varchar,为什么我不能把它作为日期呢?我知道2位数的年份可能不明确,但在这种情况下不会造成问题,因为存储的年份永远不会超出00-69范围。不幸的是,更改输出目前不是一个选项,如果可能,它确实需要在db端。约会时间也不行,我根本不想要时间;)@谢里夫:这个列是如何定义的?我希望它是“datetime”或“date”(不是“varchar”!)然而,您可以始终使用mySQL在datetime和任意字符串格式之间进行转换。如果您愿意,您可以这样做。但这是不合逻辑的。首先,您应该使用varchar格式。您可以将日期存储为yy-mm-dd(php$date=date(“y-m-d”)),但我指出了这一点。你会有问题的。我不明白你最后的答案。我不想把它改成varchar,为什么我不能把它作为日期呢?我知道2位数的年份可能不明确,但在这种情况下不会造成问题,因为存储的年份永远不会超出00-69范围。谢谢,我已经读过了,这就是为什么我可以使用日期;使用的日期是从2012年开始的,我很确定,到2069年,这个网站将早就死了哈哈。Sherif:如果你读过它,你可能会理解MySQL内部使用四位数存储年份的事实。所以如果你还想