Mysql
如何從日期中刪除前導零
我有一個查詢,其中我使用了以下內容
date_add(DATE_FORMAT(ss.week_startdate,'%y-%m-%d'),INTERVAL (tt.day_id- 1 )DAY) as date
欄位的數據類型是
datetime
,結果日期是這樣的2015-04-06
但想要的結果是這樣的
2015-04-6
我不需要
0
在白天。我試過這個date_add(DATE_FORMAT(ss.week_startdate,'%y-%m-%e'),INTERVAL (tt.day_id- 1 )DAY) as date
但沒有用。任何人都可以幫忙嗎!
您的功能應用順序錯誤。您需要先進行日期算術(
date_add
,無論如何)並應用format
最後一個:DATE_FORMAT( DATE_ADD(ss.week_startdate, INTERVAL (tt.day_id - 1) DAY), '%Y-%m-%e')
您還需要
%Y
4 位數的年份,而不是%y
.另請注意,最好也更改第一個查詢,因為它會執行很多冗餘操作:
date_add( DATE_FORMAT(ss.week_startdate,'%y-%m-%d'), INTERVAL (tt.day_id- 1 )DAY ) as date
- 首先,它計算:
DATE_FORMAT(ss.week_startdate,'%y-%m-%d')
它將日期時間值轉換為具有格式的字元串(例如目前日期,2015 年 4 月 28 日):
'15-04-28'
。
- 然後,它確實:
date_add( previous_result, INTERVAL (tt.day_id-1) DAY)
但是 the
previous_result
是一個字元串,所以它必須被轉換為date
ordatetime
。2 年格式不會導致錯誤的日期只是偶然的。在此轉換之後,date_add()
計算 ,因為第一個參數(轉換之後)是 adate
並且您只添加天,而不是小時或更小的單位,結果也是 adate
。
- 然後,
as day
考慮了 ,但這沒有任何作用,因為之前的操作也導致了date
。- 最後,結果以日期的預設格式顯示,(又一次意外!)是
%Y-%m-%d
,以獲得想要的格式。總共需要三個轉換 (
datetime -> char -> date -> char
),而您只需要一個。