如何从 MariaDB 中检索任何日期格式为 YYYY-MM-DD 的数据?

问题描述

我正在使用以下方法从 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 格式,我更喜欢这种格式。