我有一个表格,用于保存购买日期和客户姓名,如下所示:
|Name | Item | Purchase Date |
|Sam |Soap | 03-09-2018 |
|Edwin |Coffee| 28-08-2018 |
|Gary |Tea | 24-09-2018 |
|Sam |Milk | 09-10-2018 |
|Tiffany|Sugar | 17-10-2018 |
|Sam |Cocoa | 30-10-2018 |
例如,我想要这样的输出:
|Sam |Milk | 09-10-2018 |
|Sam |Cocoa | 30-10-2018 |
所以代码应该像这样:
"Select * from purchase_table where customer_name =
'"+customer_name_text+"' AND purchase_date BETWEEN
'"+from_date.getDate()+"' AND
'"+until_date.getDate()+"' ";
其中customer_name_text是用户输入以查找特定客户名称的输入,from_date也是用户输入的输入,以在untry_date jDateChooser之间进行范围日期,该日期介于2018年10月1日至2018年10月31日之间。
但是上面的输出相反,输出似乎是错误的,就像这样:
|Sam |Soap | 03-09-2018 |
|Sam |Milk | 09-10-2018 |
|Sam |Cocoa | 30-10-2018 |
任何建议都会被接受
答案 0 :(得分:0)
您需要使用类似“ 2012-10-01 00:00:00”这样的日期格式(YYYY-MM-DD HH:mm:SS)
参见下面的示例,
"Select * from purchase_table where customer_name =
'sam' AND purchase_date BETWEEN
'2012-10-01 00:00:00' AND
'2012-10-31 00:00:00' ";
答案 1 :(得分:0)
您可以使用以下查询:
"SELECT * FROM purchase_table WHERE customer_name = '"+customer_name_text
+"' AND purchase_date >= '"+from_date.getDate()
+"' AND purchase_date <= '"+until_date.getDate()+"' ";
答案 2 :(得分:0)
是的,我也建议给日期指定格式。例如: to_date('2018年12月3日','DD Mon YYYY HH24:mi:ss')
从购买表中选择* 其中customer_name ='Sam' 和to_date('2018年10月1日','DD Mon YYYY HH24:mi:ss')和to_date('31 Oct 2018','DD Mon YYYY HH24:mi:ss')之间的采购日期;
答案 3 :(得分:0)
我建议您检查SQL数据库中的默认日期格式 sql的默认格式为:
DATE-格式为YYYY-MM-DD。 DATETIME-格式:YYYY-MM-DD HH:MI:SS。 SMALLDATETIME-格式:YYYY-MM-DD HH:MI:SS。 TIMESTAMP-格式:唯一编号。
您还可以更改日期格式或以默认日期格式传递日期
答案 4 :(得分:0)
您需要使用“ 2012-10-01 00:00:00”这样的日期格式(YYYY-MM-DD HH:mm:SS)
请参见下面的示例
因为,SQL只接受这样的日期格式:(YYYY-MM-DD HH:mm:SS)
1)从用户那里接受日期,然后使用getDate()
函数编写一个函数来构造上述格式的日期。
"Select * from purchase_table where customer_name =
'sam' AND purchase_date BETWEEN
'2012-10-01 00:00:00' AND
'2012-10-31 00:00:00' ";
答案 5 :(得分:0)
尝试以下SQL查询以获取日期范围内的数据:
" SELECT
*
FROM
`purchase_table`
WHERE
customer_name = '"+customer_name_text+"'
AND
(
purchase_date >= '"+from_date.getDate()+"'
AND
purchase_date <= '"+until_date.getDate()+"'
)
";