查询从datetime转换为mysql的日期

chu*_*man 41 mysql sql datetime date

我想获取datetime字段的日期部分.我知道我可以使用date_format获取它,但返回一个字符串或"varchar"字段.如何将结果转换为日期而不是varchar?

这是我的查询返回varchar:

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date  
Run Code Online (Sandbox Code Playgroud)

我尝试了这个问题的几个组合,但无法使它工作:

mysql查询 - 输出格式化日期?

任何帮助表示赞赏.

Cha*_*ndu 66

尝试将其作为日期投射

SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED
Run Code Online (Sandbox Code Playgroud)


OMG*_*ies 38

使用DATE功能:

SELECT DATE(orders.date_purchased) AS date
Run Code Online (Sandbox Code Playgroud)

  • 它让我知道“DATE”不是公认的内置函数名称。 (2认同)

Mik*_*ll' 6

Cyber​​nate或OMG Ponies解决方案都可以使用.根本问题是DATE_FORMAT()函数返回一个字符串,而不是一个日期.你写的时候

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date 
Run Code Online (Sandbox Code Playgroud)

我认为你基本上要求MySQL尝试date_purchased根据该格式字符串格式化值,而不是调用该列date_purchased,称之为"日期".但该列将不再包含日期,它将包含一个字符串.(因为Date_Format()返回一个字符串,而不是一个日期.)

我不认为这是你想做的,但那就是你在做什么.

不要混淆值看起来与值的关系.


man*_*706 5

我看到了许多类型的用途,但我发现这种布局作为参考工具更有用:

SELECT DATE_FORMAT('2004-01-20' ,'%Y-%m-01');
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明