如何理解给定的sysdate是日期或时间戳

汤姆

我有一个过程,它使用date类型为Date的date参数。我想知道的是其他用户将sysdate发送到我的过程。他们以哪种格式将sysdate发送到我的过程?

例如:01/02/2021或01/02/2020 00:00:00(时间戳)

我的程序是否接受所有发送格式?也许日期类型转换了这种格式的发送格式01/02/2020。我不确定。

我的意思是我的Date参数可以接受所有日期格式,因为我想在过程中使用日期而不用秒或分钟。

我的程序是

DECLARE
var_P_DATE                DATE;    (for example : 01/01/2021)
BEGIN
 SELECT last_day(var_P_DATE) INTO v_last_day FROM DUAL; (31/01/2021)
 if v_last_day = var_P_DATE (it returns false because no second or minutes)
  .....
END;

我使用了DBMS.OUTPUT。我认为Date类型的转换就像20年1月2日这样,我没有收到任何错误,但我不确定。

亚历克斯·普尔

您的过程只会收到一个date,因为这是形式参数的数据类型。调用该过程时,调用方可以提供date或可以隐式转换为a的内容date(尽管不应这样做;隐式转换通常是一件坏事,尤其是从字符串开始)。

所述date数据类型包括时间分量。如果您正在传递与要忽略,如非深夜时段的日期sysdate,你可以使用trunc()功能,它的默认'DD'格式; 而且您不需要select from dual

v_last_day := last_day(trunc(var_P_DATE));

如果呼叫者通过,systimestamp那么到date您看到它时,它仍将被隐式转换为a-这意味着它会丢失任何小数秒和时区信息,但会保留小时,分钟和秒。

日期和时间戳没有任何固有的人类可读格式。日期可以使用多种格式显示-请参阅文档-显式使用to_char()和格式模型,或隐式使用会话设置。

当你做

dbms_output.put_line(var_P_DATE);

您正在date使用会话的NLS_DATE_FORMAT设置隐式转换为字符串因此,不同的用户可能会以不同的格式看到它。您对此无能为力。如果要查看特定格式,请指定该格式,例如:

dbms_output.put_line(to_char(var_P_DATE, 'YYYY-MM-DD'));

您也无法控制呼叫者是否看到该输出-它取决于应用程序/客户端及其设置。看来您可能只是将其用于调试比较问题,所以在这里可能并不重要。

因此,作为一个示范:

declare
  var_P_DATE date := sysdate;
  v_last_day date;
begin
  v_last_day := last_day(var_P_DATE);
  dbms_output.put_line(to_char(v_last_day, 'YYYY-MM-DD HH24:MI:SS'));
  v_last_day := last_day(trunc(var_P_DATE));
  dbms_output.put_line(to_char(v_last_day, 'YYYY-MM-DD HH24:MI:SS'));
end;
/

2021-02-28 09:59:02
2021-02-28 00:00:00

db <> fiddle演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何理解给定的sysdate是日期或时间戳

来自分类Dev

如何在动态SQL中使用sysdate(包括时间戳)更新日期列

来自分类Dev

如何在动态SQL中使用sysdate(包括时间戳)更新日期列

来自分类Dev

给定日期/时间和时区,如何将其转换为UTC时间戳?

来自分类Dev

如何在 Javascript 中获取给定日期、时间和区域的时间戳

来自分类Dev

如何从时间戳获取日期

来自分类Dev

如何检查两个“日期时间”时间戳之间的“日期时间”时间戳是否

来自分类Dev

如何从时间戳获取日期范围?

来自分类Dev

如何提取每个日期时间戳的频率

来自分类Dev

如何仅使用日期过滤时间戳?

来自分类Dev

如何使用日期时间自动更改给定的日期和时间

来自分类Dev

如何比较日期变量与给定时间?

来自分类Dev

给定datetime列,如何选择Unix时间戳?

来自分类Dev

如何从给定的时间戳获取年,月,日,例如“ 1459233289187”

来自分类Dev

如何从给定表中获取最大时间戳行

来自分类Dev

如何将Unix时间戳转换为日期时间

来自分类Dev

如何在Orion中存储时间戳或日期时间?

来自分类Dev

如何将时间戳转换为可读的日期/时间?

来自分类Dev

如何在Orion中存储时间戳或日期时间?

来自分类Dev

如何从PHP中的日期获取仅时间时间戳

来自分类Dev

如何从值中获取开始日期时间戳和结束日期时间戳

来自分类Dev

比较日期时间戳

来自分类Dev

Firebase的日期与时间戳

来自分类Dev

Firebase的日期与时间戳

来自分类Dev

PHP日期时间戳

来自分类Dev

需要一个“ at”命令时间戳,该时间戳在给定的日期每月运行一次Command

来自分类Dev

识别给定的时间戳

来自分类Dev

查找距给定日期/时间戳最近的记录(之前或之后)

来自分类Dev

Excel 2010:夏令时-计算任何给定日期的时间戳之间的小时数

Related 相关文章

  1. 1

    如何理解给定的sysdate是日期或时间戳

  2. 2

    如何在动态SQL中使用sysdate(包括时间戳)更新日期列

  3. 3

    如何在动态SQL中使用sysdate(包括时间戳)更新日期列

  4. 4

    给定日期/时间和时区,如何将其转换为UTC时间戳?

  5. 5

    如何在 Javascript 中获取给定日期、时间和区域的时间戳

  6. 6

    如何从时间戳获取日期

  7. 7

    如何检查两个“日期时间”时间戳之间的“日期时间”时间戳是否

  8. 8

    如何从时间戳获取日期范围?

  9. 9

    如何提取每个日期时间戳的频率

  10. 10

    如何仅使用日期过滤时间戳?

  11. 11

    如何使用日期时间自动更改给定的日期和时间

  12. 12

    如何比较日期变量与给定时间?

  13. 13

    给定datetime列,如何选择Unix时间戳?

  14. 14

    如何从给定的时间戳获取年,月,日,例如“ 1459233289187”

  15. 15

    如何从给定表中获取最大时间戳行

  16. 16

    如何将Unix时间戳转换为日期时间

  17. 17

    如何在Orion中存储时间戳或日期时间?

  18. 18

    如何将时间戳转换为可读的日期/时间?

  19. 19

    如何在Orion中存储时间戳或日期时间?

  20. 20

    如何从PHP中的日期获取仅时间时间戳

  21. 21

    如何从值中获取开始日期时间戳和结束日期时间戳

  22. 22

    比较日期时间戳

  23. 23

    Firebase的日期与时间戳

  24. 24

    Firebase的日期与时间戳

  25. 25

    PHP日期时间戳

  26. 26

    需要一个“ at”命令时间戳,该时间戳在给定的日期每月运行一次Command

  27. 27

    识别给定的时间戳

  28. 28

    查找距给定日期/时间戳最近的记录(之前或之后)

  29. 29

    Excel 2010:夏令时-计算任何给定日期的时间戳之间的小时数

热门标签

归档