AVM*_*AVM 2 mysql date-format datetime
我有一个查询,其中使用了以下内容
date_add(DATE_FORMAT(ss.week_startdate,'%y-%m-%d'),INTERVAL (tt.day_id- 1 )DAY) as date
Run Code Online (Sandbox Code Playgroud)
字段的数据类型是datetime,结果日期是这样的
2015-04-06
Run Code Online (Sandbox Code Playgroud)
但想要的结果是这样的
2015-04-6
Run Code Online (Sandbox Code Playgroud)
我不需要0在前一天。我试过这个
date_add(DATE_FORMAT(ss.week_startdate,'%y-%m-%e'),INTERVAL (tt.day_id- 1 )DAY) as date
Run Code Online (Sandbox Code Playgroud)
但没有用。任何人都可以请帮忙!
您以错误的顺序应用了这些功能。您需要先进行日期算术(date_add,无论如何)并应用format最后一个:
DATE_FORMAT( DATE_ADD(ss.week_startdate, INTERVAL (tt.day_id - 1) DAY),
'%Y-%m-%e')
Run Code Online (Sandbox Code Playgroud)
您还需要%Y一个 4 位数的年份,而不是%y.
另请注意,最好也更改第一个查询,因为它执行了很多冗余操作:
date_add(
DATE_FORMAT(ss.week_startdate,'%y-%m-%d'),
INTERVAL (tt.day_id- 1 )DAY
)
as date
Run Code Online (Sandbox Code Playgroud)
DATE_FORMAT(ss.week_startdate,'%y-%m-%d')'15-04-28'。date_add( previous_result, INTERVAL (tt.day_id-1) DAY)previous_resultis 是一个字符串,因此必须将其转换为dateor datetime。2 年格式不会导致错误的日期只是偶然的。在此转换之后,date_add()计算了 ,并且因为第一个参数(转换后)是 adate并且您只添加天数,而不是小时或更小的单位,结果也是 a date。as day考虑了 ,但这没有任何作用,因为之前的操作也导致date了 。%Y-%m-%d,以获得所需的格式。总共有三个转换 ( datetime -> char -> date -> char),而您只需要一个。
| 归档时间: |
|
| 查看次数: |
3324 次 |
| 最近记录: |