2017-01-03 43 views
-3

我有一張表。它有一個varchar類型的日期列。
我想使用日期搜索該表,但我只想從一年的月份開始搜索。如何在mysql中搜索月份和月份

例如:12-2016
我怎麼能寫,查詢?
我想那部分分配給碧玉的可變

**例如:** WHERE ............. = $ P {invDate}

例如作爲在我的碧玉報告:

SELECT invoiceheader.inNo AS invoiceheader_inNo,invoiceheader.cusID AS invoiceheader_cusID,invoiceheader.soNo AS invoiceheader_soNo,invoiceheader.total AS invoiceheader_total,invoiceheader.dis AS invoiceheader_dis,invoiceheader.netTotal AS invoiceheader_netTotal,invoiceheader.cash AS invoiceheader_cash,invoiceheader.bal AS invoiceheader_bal,invoiceheader.date AS invoiceheade r_date從invoiceheader invoiceheader WHERE ........................................... = $ p {invDate}

我需要爲上述空間

+0

使用像關鍵字爲eample(SELECT * FROM表,其中日期LIKE '%12-2016'); – Assen

+1

請顯示一些有問題的示例數據。 * varchar類型日期列*不是很清楚 – GurV

+0

也許你想使用['BETWEEN'](http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_between) – khelwood

回答

1

嘗試使用日期本(你已經使用VARCHAR數據類型等等之類的關鍵字將非常適合對於這種情況):

select * from table where date like concat('%' ,$P{invDate}); 
+0

我沒有在查詢中給出日期,我把它從一個參數中傳遞出去..所以我需要一個適合任何月份和年份的查詢 –

+0

@Nisal你的列包含什麼? – GurV

+0

答案現在更新,請試試這個@ Nisal – Assen

-1

完美查詢嘗試以下 -

select * from Table_name where month(date_column_name)=12 and year(date_column_name)=2016 
0

嘗試這種情況下:

STR_TO_DATE(date_field, '%d-%m-%Y') < STR_TO_DATE('12-2016', '%m-%Y') 
+0

不適合我一 –