问题描述
当我使用MSSQL时,我可以声明开始和结束日期 (或其他参数),以避免必须更改查询本身中的变量。
这就是表的样子
-------------------- ------ ------
日期时间操作用户
-------------------- ------ ------
16/12/2018 20:32:58选择约翰
16/12/2018 23:58:42下降约翰
17/12/2018 2:13:54选择乔治
17/12/2018 10:24:36选择保罗
17/12/2018 16:44:25下降保罗
18/12/2018 1:23:45下降乔治
查询将是这样的:
我已经尝试了几个TO_DATE & DEFINE选项,但是我一直收到错误
这就是表的样子
-------------------- ------ ------
日期时间操作用户
-------------------- ------ ------
16/12/2018 20:32:58选择约翰
16/12/2018 23:58:42下降约翰
17/12/2018 2:13:54选择乔治
17/12/2018 10:24:36选择保罗
17/12/2018 16:44:25下降保罗
18/12/2018 1:23:45下降乔治
查询将是这样的:
DECLARE @StartTime char(10); set @startTime = '2018-12-17' DECLARE @StopTime char(10); set @stopTime = '2018-12-18' SELECT DateTime, Action, User FROM transport WHERE Time BETWEEN @StartTime AND @StopTime
我已经尝试了几个TO_DATE & DEFINE选项,但是我一直收到错误
专家解答
当你对字符串进行日期设置时,提供一个格式掩码。确保这与您的字符串的格式匹配:
如果这不起作用,你需要更具体地说明问题是什么。I.e.你的代码和你得到的错误
PS-当您在Oracle数据库中遇到错误时,它有助于向我们显示您的Oracle代码。不是MSSQL!
var st_dt varchar2(12);
var en_dt varchar2(12);
exec :st_dt := '10-DEC-2018';
exec :en_dt := '13-DEC-2018';
with rws as (
select date'2018-11-30' + level dt
from dual
connect by level <= 31
)
select * from rws
where dt between to_date ( :st_dt, 'DD-MON-YYYY' )
and to_date ( :en_dt, 'DD-MON-YYYY' );
DT
10-DEC-2018 00:00:00
11-DEC-2018 00:00:00
12-DEC-2018 00:00:00
13-DEC-2018 00:00:00 如果这不起作用,你需要更具体地说明问题是什么。I.e.你的代码和你得到的错误
PS-当您在Oracle数据库中遇到错误时,它有助于向我们显示您的Oracle代码。不是MSSQL!
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




