我有一个包含组合日期的字段,行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