Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mySql中的更新日期_Mysql_Date - Fatal编程技术网

mySql中的更新日期

mySql中的更新日期,mysql,date,Mysql,Date,我有一个日期栏,日期为2012-02-25格式。我需要将其更新为12-02-25,但不确定如何进行 谢谢 编辑:在回顾了所有的答案之后,我似乎还不够清楚。我不希望更改我的类型,也不希望处理输出。我想将现有的date列从2012更新为12。它应该是一个更新查询,如果有的话,我只是不知道如何编写它。感谢到目前为止的所有评论 编辑2:我的问题似乎没有意义,我不知道你不能将日期存储为xx。无论如何谢谢你 您应该使用日期时间类型。否则,您将遇到一些问题(排序、与日期相关等) 您可以将日期的显示更改为输出。

我有一个日期栏,日期为2012-02-25格式。我需要将其更新为12-02-25,但不确定如何进行

谢谢

编辑:在回顾了所有的答案之后,我似乎还不够清楚。我不希望更改我的类型,也不希望处理输出。我想将现有的date列从2012更新为12。它应该是一个更新查询,如果有的话,我只是不知道如何编写它。感谢到目前为止的所有评论


编辑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内部使用四位数存储年份的事实。所以如果你还想