SQL: 是否可以将 dd-mon-yy 转换为一天中的某个时间?

SQL: Is it possible to convert dd-mon-yy to a time of day?

我有这个 table 日期为 dd-mon-yy 的约会:

APP_DATE  
--------- 
06-NOV-20 
06-NOV-20 

我的老师要我们把它转换成这样:

APPT_DATE      APPT_TIME 
-------------  ------------
NOV 06, 2020   10:45 AM 
NOV 06, 2020   11:30 AM 

这可能吗?如果是这样,如何?我的老师没有在约会时给我们每小时的信息。但也许它仍然存在,因为它们是日期类型?

如果你真的只有约会对象,就无法获得约会时间。

如果这是一个视图或某种表示层,并且在底层数据源中实际上有一个 DATETIME 格式,您可以使用类似的东西: CONVERT(TIME(0), APP_DATE) AS APP_TIME

如果不是这样,您的老师似乎错过了一些关键信息,和/或对将日期格式从 DD-MMM-YY 更改为 [MMM DD, YYYY] 更感兴趣 这可以这样做: SELECT CONVERT(VARCHAR, APP_DATE, 107)

有关 CONVERT 函数和格式选项的更多信息,请参阅此 link: https://www.w3schools.com/sql/func_sqlserver_convert.asp

如果列是date,那么它包含一个时间,只是displaying的问题而已:

select to_char(app_date, 'Mon, d yyyy') as app_date, 
       to_char(app_date, 'hh24:mi') as app_time
from the_table;

我认为正确的答案有一些问题。

您可以使用以下代码:

SELECT TO_CHAR(APP_DATE, 'Mon, DD yyyy') AS APP_DATE, -- use DD instead of D
       TO_CHAR(APP_DATE,'hh24:mi') AS APP_TIME -- Use 24 instead of 42
  FROM YOUR_TABLE