sql多条件

rvpgvaaj  于 2021-06-18  发布在  Mysql
关注(0)|答案(6)|浏览(280)

我有一个保存购买日期和客户名称的表,如下所示:

|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\u name\u text是用户的输入,用于查找特定的客户名称,from\u date也是用户的输入,用于在截止日期jdatechooser之间设置一个范围日期,该日期介于2018年10月1日至2018年10月31日之间
但不是像上面那样的输出,输出似乎是错误的,它是这样的:

|Sam    |Soap  | 03-09-2018    |
|Sam    |Milk  | 09-10-2018    |
|Sam    |Cocoa | 30-10-2018    |

任何建议都将被接受

wbgh16ku

wbgh16ku1#

是的,我也建议,给日期一个格式。例如:截止日期('2018年12月3日','dd mon yyyy hh24:mi:ss')
从purchase(采购)表中选择*,其中customer(客户)名称='sam',purchase(采购)日期介于to(采购)日期('2018年10月1日','dd mon yyyy hh24:mi:ss')和to(采购)日期('2018年10月31日','dd mon yyyy hh24:mi:ss');

ibrsph3r

ibrsph3r2#

尝试以下sql查询以获取日期范围内的数据:

" SELECT 
        *
    FROM 
        `purchase_table`
    WHERE
        customer_name = '"+customer_name_text+"'
        AND
        (
            purchase_date >= '"+from_date.getDate()+"'
            AND
            purchase_date <= '"+until_date.getDate()+"'
        )
";
rur96b6h

rur96b6h3#

您需要使用这样的日期格式“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' ";
xurqigkl

xurqigkl4#

您可以使用以下查询:

"SELECT * FROM purchase_table WHERE customer_name = '"+customer_name_text
+"' AND purchase_date >= '"+from_date.getDate()
+"' AND purchase_date <= '"+until_date.getDate()+"' ";
jexiocij

jexiocij5#

我建议您检查sql数据库中的默认日期格式sql的deafult格式是:
日期-格式YY-mm-dd。日期时间-格式:yyyy-mm-dd hh:mi:ss。smalldatetime-格式:yyyy-mm-dd hh:mi:ss。时间戳格式:一个唯一的数字。
也可以更改日期格式或以默认日期格式传递日期

huwehgph

huwehgph6#

您需要使用这样的日期格式“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' ";

相关问题