如何在Oracle中将存储在varchar2中的时间转换为24小时格式?

时间:2013-08-10 10:36:49

标签: sql oracle datetime time oracle-sqldeveloper

我有时间作为HH:MI:SS AM / PM存储在表格的varchar2列中。如何将其转换为24小时格式?

2 个答案:

答案 0 :(得分:6)

转换为DATE

to_date(<text field>, 'DD/MM/YYYY HH:MI:SS AM')

转换为另一个字符串:

to_char(to_date(<date field>, 'DD/MM/YYYY HH:MI:SS AM'), 'DD/MM/YYYY HH24:MI:SS')

e.g。 (将NLS_DATE_FORMAT设置为YYYY-MM-DD HH24:MI:SS):

select to_date('09/08/2013 5:13:07 PM', 'DD/MM/YYYY HH:MI:SS AM'),
  to_char(to_date('09/08/2013 5:13:07 PM', 'DD/MM/YYYY HH:MI:SS AM'),
    'DD/MM/YYYY HH24:MI:SS')
from dual;

TO_DATE('09/08/2013 TO_CHAR(TO_DATE('09
------------------- -------------------
2013-08-09 17:13:07 09/08/2013 17:13:07

如果有时间部分:

select to_date('5:13:07 PM', 'HH:MI:SS AM'),
  to_char(to_date('5:13:07 PM', 'HH:MI:SS AM'), 'HH24:MI:SS')
from dual;

TO_DATE('5:13:07PM' TO_CHAR(
------------------- --------
2013-08-01 17:13:07 17:13:07

请注意,如果您未提供该值的日期部分,则默认为当月的第一天(在the documentation for datetime literals中提及;但如果您只有时间,则可能希望将其保留为反正是一个字符串。

答案 1 :(得分:0)

使用此:type gameCreate= { player1Key : string gameKey: string } let create= { player1Key = "BadBoys2"; gameKey = "zLUGgtrht4456" } let json = Newtonsoft.Json.JsonConvert.SerializeObject(create) //OK (acc |> Json.serialize |> Json.format ) let php = request (fun r -> match r.queryParam "playerName" with | Choice1Of2 name -> OK (movies |> Json.serialize(json) |> Json.format(json)) //|> Response.response(Json.toJson(info)) //|> OK | Choice2Of2 msg -> BAD_REQUEST msg) let webPart = choose [ path "/" >=> (OK "Home") path "/elm/api/create.php" >=> php ] startWebServer defaultConfig webPart 请注意,如果您没有提供值的日期部分,则默认为当月的第一天(在日期时间文字的文档中提到),但如果您只有时间,则可能希望将其保留为反正是一个字符串。