问题描述
我正在使用以下方法从 MariaDB 检索数据:
SELECT * FROM table_name
此数据中的三列包含日期(并且格式为 YYYY-MM-DD 格式的日期)。当我在客户端收到它们时,它们显示为“2021-07-11T14:00:00.000Z”,但我想要“2021-07-11”。我尝试了很多东西,包括:
SELECT * FROM table_name DATE_FORMAT(date_column_one,'dd/mm/yyyy')
哪个不起作用,以及
SELECT *,DATE_FORMAT(date_column_one,'dd/mm/yyyy') FROM table_name
但这只是添加了另一列数据 - 我仍然以错误的格式获取其他日期。
网上有很多关于这些东西的信息,但我找不到任何地方将日期格式与基本的选择语句结合起来。
解决方法
您对 DATE_FORMAT
的调用未使用您在此处似乎想要的格式掩码,即 yyyy-mm-dd
。尝试使用正确的掩码,也不要通过 SELECT *
选择日期列:
SELECT col1,col2,col3,... -- excluding date_column_one etc.
DATE_FORMAT(date_column_one,'yyyy-mm-dd') AS date_column_one
FROM table_name;
,
如果你只想返回一个 date
,那么你可以使用 date
函数:
SELECT . . .,-- the other columns
DATE(date_column_one)
FROM table_name;
但是,这会返回一个类型为 date
的列,您可以在应用程序中显示它。某些应用程序可能会“帮助”您决定要查看时间和时区。
您可以通过使用 DATE_FORMAT()
:
SELECT . . .,-- the other columns
DATE_FORMAT(date_column_one,'%d/%m/%Y')
FROM table_name;
现在这个值是一个字符串,它的格式不会改变。格式 '%Y-%m-%d'
是标准的 YYYY-MM-DD 格式,我更喜欢这种格式。