我正在使用SQL,我正在尝试创建一个允许用户输入2个日期的WHERE语句,并填充这些日期之间(包括)这些日期的所有数据。
我的代码目前
WHERE table.date BETWEEN 'StartDate' AND 'EndDate';
但是当我尝试执行查询时,出现“从字符串转换日期和/或时间时转换失败”的错误。我还试图删除'',我收到另一个错误,上面写着“无效的列名”
如何解决这个问题,以便我可以让用户输入日期(mm / dd / yyyy)?
客户|价格|日期|项目|
修改
这是我的实际代码:
SELECT [Customer],[Price],[Date],[Items]
FROM table
WHERE table.date BETWEEN ‘StartDate’ AND ‘EndDate’;
答案 0 :(得分:2)
如果您使用Mysql,则可以将startdate和enddate转换为字符串到日期
between str_to_date(Startdate,'%m/%d/%Y') and str_to_date(EndDate,'%m/%d/%Y')
对于Sql server
between convert(date, Startdate) and convert(date, Enddate)
例如,如何运行所有脚本我添加了屏幕截图。假设startdate是@ str1,Enddate是@ str2
Declare @Str1 Varchar(100)='12/14/2015'
Declare @Str2 Varchar(100)='12/14/2017'
select * from #temp where CONVERT(date,dat) between convert(date,@str1)
and CONVERT(date,@str2)
输出屏幕截图: -