我有一個包含組合日期的字段,行2012-02-03 - 2012-02-05其中第一個日期是「from」日期,第二個是「至今。在sql查詢中拆分字段並按它們排序
有沒有一種方法可以將這兩個日期分開,然後按「從」日期排序?
我知道最好的辦法是在這兩個日期有兩個不同的字段,但是因爲我開始這樣做,所以有很多重新編碼來分離它們。
我有一個包含組合日期的字段,行2012-02-03 - 2012-02-05其中第一個日期是「from」日期,第二個是「至今。在sql查詢中拆分字段並按它們排序
有沒有一種方法可以將這兩個日期分開,然後按「從」日期排序?
我知道最好的辦法是在這兩個日期有兩個不同的字段,但是因爲我開始這樣做,所以有很多重新編碼來分離它們。
您可以使用SUBSTRING_INDEX
。
假設你的日期有「 - 」他們(即空間,連字符,空間)之間,你可以這樣做:
SELECT SUBSTRING_INDEX(datefield,' - ',1) as fromDate,
SUBSTRING_INDEX(datefield,' - ',-1) as toDate,
FROM ..
ORDER BY DATE(fromDate)
SUBSTRING_INDEX(string,delimiter,count)
返回所有的string
達(不包括)count
個occurence delimiter
。如果delimiter
爲負數,則它從右數起,並返回字符串末尾的子串。
我用DATE(fromDate)
將fromDate
從一個字符串轉換爲一個MySQL日期,所以它以類似日期的方式排序。
,或者,如果您的日期恰好有10個字符lenght,您可以使用SUBSTRING如下http://sqlfiddle.com/#!2/53006/4
哪個'datetype'您用於該列? – 2012-03-02 06:52:42