首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用to_date函数转换包含日期和时间的字符串

使用to_date函数转换包含日期和时间的字符串
EN

Stack Overflow用户
提问于 2022-06-06 17:34:30
回答 1查看 73关注 0票数 0

如何在oracle-sqldeveloper中使用to_date函数来转换字符串

May 1 2019 12:00 to date数据类型?日期在SQL中也存储时间,

还是只存储约会?我试着用to_date函数

格式,但它总是删除时间部分。

如果时间不可能在日期数据类型,有什么可能是一个好的选择?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-06 18:00:30

您可以将日期转换为字符串(假设24小时值,这很可能是因为您没有AM/PM标记):

代码语言:javascript
复制
to_date('May 1 2019 12:00', 'Mon DD YYYY HH24:MI', 'nls_date_language=English')

格式元素为在文件中。我已经为to_date()添加了可选的第三个参数,因为无论您的会话设置如何,您的月份名称都必须用英语进行解释。

它总是删除时间部分。

Oracle日期总是有日期和时间部分,即使时间设置为午夜。您可能会看到查询的结果是‘01-5月19日’。

日期没有任何内在的人类可读的格式;Oracle使用自己的内部表示形式,您通常不需要担心这个问题。

在大多数客户端和IDE中,会话格式设置用于将本机日期显示为字符串。由于历史原因,在数据库创建期间,尽管有Y2K,但仍然默认为DD-MON。它可以在数据库级别上进行更改,然后会话将继承它。但是,每个会话都可以覆盖它,例如,通过发出:

代码语言:javascript
复制
alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'

您还可以通过to_char()调用显式地将日期值转换回字符串,并指定要包含的格式元素。只有在显示值时才这样做--如果要存储日期或将日期传递给函数,请始终将其作为正确的日期数据类型来执行,而不是作为字符串。(如果您必须将它们作为字符串传递到数据库之外,例如远程API,则通常需要使用ISO-8601格式)。

db<>fiddle显示默认输出,显式格式化为字符串(同样,仅用于显示--不要将日期存储或操作为字符串),并且会话格式已修改。

在sessions中,您还可以使用Tools->Preferences->Database->NLS并在那里更改“日期格式”,然后在创建新会话时应用该设置,而不必每次发出alter session

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72521448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档