标签: sysdate

Oracle当前日期到小时

我想用当前时间得到日期.

使用trunc(sysdate)给了我们类似的东西2017-06-16 00:00:00

但是,我也想要当前时间:

2017-06-16 10:00:00
2017-06-16 11:00:00
Run Code Online (Sandbox Code Playgroud)

等等.

我希望它是一个日期(而不是char),因为我需要它与日期列进行比较.

date_column <= day_with_hour
Run Code Online (Sandbox Code Playgroud)

sql oracle sysdate

1
推荐指数
1
解决办法
785
查看次数

使用SYSDATE获取日期的问题?

我有一个具有EMP_DATE列的表结构,如下所示

 ID       EMP_DATE
----    -----------
5400     14-FEB-2012
Run Code Online (Sandbox Code Playgroud)

我已将记录插入表中,如下所示

INSERT INTO TEST_DATE VALUES(5400,SYSDATE);
Run Code Online (Sandbox Code Playgroud)

插入记录,而我试图获取那些谁拥有的记录后EMP_DATE 作为SYSDATE其没有给出选择的行.暂时让我们SYSDATE成为'01 -JUL-2012`

 SELECT * FROM TEST_DATE WHERE EMP_DATE = SYSDATE;
                (OR)
 SELECT * FROM TESt_DATE WHERE EMP_DATE = '01-JUL-2012';
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚任何解决方案.任何的意见都将会有帮助 .

sql oracle sysdate

0
推荐指数
1
解决办法
1635
查看次数

为什么CAST(SYSDATE AS CHAR)不提供与TO_CHAR()相同的细节?

在可能的情况下,我更喜欢使用跨平台可用的功能.所以为了获得当前时间,我尝试了:

CAST(SYSDATE AS CHAR(19))
Run Code Online (Sandbox Code Playgroud)

......但只是'07 -JUL-14'.如果我使用Oracle的本机函数:

TO_CHAR(SYSDATE, 'YYYY-MM-DD hh:mi:ss')
Run Code Online (Sandbox Code Playgroud)

......我得到了我期望的所有细节. 表示值返回的doc页面SYSDATE是日期/时间.那么为什么不CAST(SYSDATE AS CHAR)返回日期/时间值呢?

我很想回答"Oracle,默认情况下,在将它们转换为CHAR或VARCHAR时会截断日期",但我的Oracle经验有限,所以如果专家能给出更好的答案我会留下问题.例如,有什么方法可以改变这种行为吗?是否有一些历史原因导致Oracle决定以CAST这种方式销毁信息?

oracle casting sysdate

0
推荐指数
1
解决办法
422
查看次数

Oracle sysdate不等于存储日期

数据库:Oracle

简化版:

T有一列:D(DATE类型)

现在桌子是空的.

INSERT INTO T
    (D) VALUES (sysdate);
Run Code Online (Sandbox Code Playgroud)

现在该表有一行包含22-AUG-14.

为什么以下WHERE子句为false

SELECT * FROM T
    WHERE D = sysdate;
Run Code Online (Sandbox Code Playgroud)

=> 0行

以下查询有效:

SELECT * FROM T
    WHERE TO_CHAR(D, 'DD/MM/YYYY') = TO_CHAR(sysdate, 'DD/MM/YYYY');
Run Code Online (Sandbox Code Playgroud)

=> 1行

我认为与时间相关的"精度损失"(类似于double和int),但为什么可能呢?因为这两种类型都是DATE.

sql oracle precision where-clause sysdate

0
推荐指数
1
解决办法
5542
查看次数

Sysdate中的SQL TRUNC分钟

我目前正在使用其中一列来提取时间的每分钟,但是,由于该分钟未插入任何数据,因此会跳过几分钟。

输出低于预期。

12-19-2017 02:23:00
12-19-2017 02:24:00
12-19-2017 02:25:00
12-19-2017 02:26:00
12-19-2017 02:27:00
12-19-2017 02:28:00
12-19-2017 02:29:00
12-19-2017 02:30:00
12-19-2017 02:31:00
12-19-2017 02:32:00
12-19-2017 02:33:00
12-19-2017 02:34:00
Run Code Online (Sandbox Code Playgroud)

我得到什么。(当前时间为13:11

12-19-2017 13:11:00
12-19-2017 13:11:00
12-19-2017 13:11:00
12-19-2017 13:11:00
12-19-2017 13:11:00
12-19-2017 13:11:00
12-19-2017 13:11:00
12-19-2017 13:11:00
12-19-2017 13:11:00
12-19-2017 13:11:00
12-19-2017 13:11:00
12-19-2017 13:11:00
Run Code Online (Sandbox Code Playgroud)

询问

SELECT TRUNC(SYSDATE,'MI')  AS TIME_STAMP From Table where SYSDATE >= sysdate - 1;
Run Code Online (Sandbox Code Playgroud)

sql oracle datetime timestamp sysdate

0
推荐指数
1
解决办法
4208
查看次数

Oracle SQL Current_Date

我在一个简单的查询中使用Current_Date函数时遇到了一些问题,但我无法弄清楚原因.我正在使用Oracle SQL Developer 3.2在Oracle 12c环境中工作.

我的原始查询看起来像这样:

select * from Inventory where Placement_End_Dt >= Current_date
Run Code Online (Sandbox Code Playgroud)

以上工作正常,但它没有获取Placement_End_Dt今天(5月14日18日)的记录

我尝试按如下方式简化查询,但这也不会返回任何内容

select * from Inventory where Placement_End_Dt = Current_date
Run Code Online (Sandbox Code Playgroud)

但是,当我按如下方式应用日期格式时,它可以工作:

select * from Inventory where to_char(Placement_End_Dt, 'DD-MM-YYYY') = to_char(Current_date, 'DD-MM-YYYY')
Run Code Online (Sandbox Code Playgroud)

然后我尝试对此进行扩展以恢复到我的原始查询,以选择具有从今天开始的结束日期的所有记录:

select * from Inventory where to_char(Placement_End_Dt, 'DD-MM-YYYY') => to_char(Current_date, 'DD-MM-YYYY')
Run Code Online (Sandbox Code Playgroud)

这非常失败,因为它选择了Placement_End_Dt过去,现在和未来的记录!

Placement_End_Dt列定义为Oracle DATE数据类型

希望得到一些关于我如何使这个查询工作的输入.

sql oracle sysdate

0
推荐指数
1
解决办法
369
查看次数

标签 统计

oracle ×6

sysdate ×6

sql ×5

casting ×1

datetime ×1

precision ×1

timestamp ×1

where-clause ×1