我有一個MySQL列設置以下MySQL的SELECT查詢字符串分割搜索值
日期範圍= 2017年2月27日 - 2017年2月29日
現在我想
SELECT * FROM leaves WHERE daterange (>= firstvalue && <= secondvalue)
這可能嗎?將每個值分開,因爲它們被保存爲一個字符串?否則,我想我必須在插入表之前拆分日期範圍。
我有一個MySQL列設置以下MySQL的SELECT查詢字符串分割搜索值
日期範圍= 2017年2月27日 - 2017年2月29日
現在我想
SELECT * FROM leaves WHERE daterange (>= firstvalue && <= secondvalue)
這可能嗎?將每個值分開,因爲它們被保存爲一個字符串?否則,我想我必須在插入表之前拆分日期範圍。
假設日期範圍,firstvalue和secondvalue是合適的日期(日期時間)數據類型可以使用
之間SELECT *
FROM leaves
WHERE daterange BETWEEN firstvalue AND secondvalue
如果一些值involed不是最新的數據類型,但VARCHAR你應該使用STR_TO_DATE適當的轉換或
首先,修復你的數據結構。這裏有事情是錯誤的保存像是範圍:
date
或datetime
),而不是字符串。也就是說,有時候你會被其他人的設計決定困住。所以,如果你完全無法修復數據結構,那麼有一個解決方法。您可以將範圍轉換爲您需要的值:
where $date >= str_to_date(left(daterange, 10), '%m-%d-%Y') and
$date <= str_to_date(right(daterange, 10), '%m-%d-%Y')
謝謝!我同意,數據結構是完全混亂的,我試圖修改別人的項目。我會放棄這一點。 – Robert
哪些數據類型是daterange,firstvalue和secondvalue? – scaisEdge
@Chad。 。 。在將日期範圍插入表格之前拆分日期範圍。不要製造混亂。 –