2017-05-09 26 views
2
SELECT la.emp_id  'EMPLOYEE ID' 
    , ta.surname  SURNAME 
    , ta.firstname FIRSTNAME 
    , ta.middlename MIDDLENAME 
    , la.department DEPARTMENT 
    , la.leave_type 'LEAVE TYPE' 
    , la.date_from 'FROM DATE' 
    , la.date_to  'TO DATE' 
    , la.date_filed 'DATE FILED' 
    , la.num_days 'DAYS ABSENT' 
    , la.date_return 'DATE RETURN' 
    , la.reason  REASON 
    , ta.rem_vl  'REMAINING VL' 
    , ta.rem_sl  'REMAINING SL' 
    , la.remarks  REMARKS 
    FROM leave_application la 
    JOIN tsp_employee_account ta 
    ON la.emp_id = ta.emp_id 
WHERE la.date_from = '2017-04-22' 
    AND la.date_to = '2017-04-22' 
    AND la.filed != 0 
ORDER 
    BY la.leave_id DESC 
LIMIT 0,30; 

我想顯示所有記錄基於來自和來自的輸入日期將基於數據庫上的date_from和date_to。我怎麼能做到這一點?我有date_from和date_to列在數據庫上...我如何顯示基於date_from和date_to的所有記錄作爲範圍日期

+3

使用['BETWEEN'(https://www.w3schools.com/sql/sql_between.asp) – Swellar

+1

使用空格寫在別名中只是要求麻煩。 – Strawberry

回答

1

您可以用這種方式

SELECT la.emp_id AS 'EMPLOYEE ID', ta.surname AS SURNAME, ta.firstname AS FIRSTNAME, ta.middlename AS MIDDLENAME, la.department AS 'DEPARTMENT', la.leave_type AS 'LEAVE TYPE', la.date_from AS 'FROM DATE', la.date_to AS 'TO DATE', la.date_filed AS 'DATE FILED', la.num_days AS 'DAYS ABSENT', la.date_return AS 'DATE RETURN', la.reason AS 'REASON', ta.rem_vl AS 'REMAINING VL', ta.rem_sl AS 'REMAINING SL', la.remarks AS 'REMARKS' 
FROM leave_application la 
JOIN tsp_employee_account ta ON la.emp_id = ta.emp_id 
WHERE DATE(la.date_from) >= '2017-04-22' -- <<--- check this 
AND DATE(la.date_to) <= '2017-04-22' -- <<--- check this 
AND la.filed != '0' 
ORDER BY la.leave_id DESC 
LIMIT 0 , 30; 
+0

哦,我不知道DATE('column_name')可以在這種情況下使用..我會試試這個,讓你知道它是否工作。謝謝。 – MDB

+0

這個工程!謝謝@Promit! – MDB

+0

我很高興它爲你工作。 – Promit

1

如果您需要介於此日期之間的範圍,則可以使用BETWEEN。這裏有一個例子:

SELECT * 
FROM order_details 
WHERE order_date BETWEEN CAST('2014-02-01' AS DATE) AND CAST('2014-02-28' AS DATE); 
+0

嗨@Stony,我知道如何使用'BETWEEN',我只是不知道應該以哪個爲基礎。該?在'WHERE?.........' – MDB

相關問題