当我创建一个表并在mysql中创建类型为date的字段时,它会像0000-00-00一样存储日期。可以将格式更改为“ dm-Y”吗?
转到MySQL参考-10.5。数据类型存储要求
搜索: 日期和时间类型的存储要求
日期在内部存储为 A three-byte integer packed as DD + MM×32 + YYYY×16×32
A three-byte integer packed as DD + MM×32 + YYYY×16×32
但是,如果您选择 显示 日期列,则必须以 某种 方式 显示 它,因此它会以0000-00-00的形式出现。它 不会 以该特定格式存储为char(10)。
如果需要显示特定格式,可以使用Date_Format()将其转换为特定格式的VARCHAR 。但是,请记住,如果要在编程工具中使用查询,则 不需要 执行此操作。您想要原始 日期值 ,出于显示目的,无论您使用哪种编程环境,都会有一个类似的格式化功能。
从DATE_FORMAT的参考中可以看到,您将需要使用 '%d-%m-%Y' ,例如
'%d-%m-%Y'
SELECT col1, col2, DATE_FORMAT(datecolumn, '%d-%m-%Y') AS datecolumn, more1... FROM sometable ....