如何在 PLSQL 中格式化日期变量
我是 PL/SQL 新手,有这个问题。
我创建了一个具有以下规范的过程:
PROCEDURE runschedule (i_RunDate IN DATE)
此 i_RunDate
采用特定格式,我需要将其更改为以下格式:
'MM/dd/yyyy hh:mi:ss PM'
我找不到如何重新格式化日期变量。
I am new to PL/SQL and have this question.
I created a procedure with the following specification:
PROCEDURE runschedule (i_RunDate IN DATE)
this i_RunDate
comes in a specific format, and I need to change it to this format:
'MM/dd/yyyy hh:mi:ss PM'
I couldn't find how to re-format a Date variable.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用
TO_CHAR
函数。这是一个例子:You need to use the
TO_CHAR
function. Here's an example:DATE没有特定的格式,DATE就是DATE。当存储在数据库列中时,日期值包括自午夜以来以秒为单位的时间,并且 DATE 变量具有相同的内容,只是在某些时候显示变量已格式化。 PL/SQL 可以隐式转换值的数据类型,例如,可以将 CHAR 值“02-JUN-92”转换为 DATE 值。但我不建议您依赖这种隐式转换。我总是使用显式转换。
有关此主题的更多信息,您可以阅读以下内容:
http://download.oracle.com/docs /cd/B28359_01/appdev.111/b28370/datatypes.htm#i9118
在你的情况,如果你想格式化你的 DATE 来记录一些东西,或者以不同的格式在你的 UI 中显示,你需要将它分配给一个 varchar 变量,就像 Justin 所说的,像这样:
你的createschedule过程,在这个这种情况,会有一个 varchar2 参数...
The DATE has not especific format, a DATE is a DATE. When stored in the database column, date values include the time of day in seconds since midnight, and a DATE variable has the same, only that when in some point you show the variable is formatted. PL/SQL can convert the datatype of a value implicitly, for example, can convert the CHAR value '02-JUN-92' to a DATE value.. but I don't recommend you rely on this implicit conversiosn. I always use the explicit conversion.
For more on this topic, you could read this:
http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/datatypes.htm#i9118
In your case, if you want to format your DATE to log something, or to show in your UI or wathever in a different format, you need to assig it to a varchar variable as Justin said, something like this:
Your createschedule procedure, in this case, will have a varchar2 parameter...