生成没有时间组件的日期

所有 DATE 都有时间成分; 然而,习惯上存储不需要包括时间信息的日期,其中小时/分钟/秒设置为零(即午夜)。

使用 ANSI DATE 文字 (使用 ISO 8601 日期格式 ):

SELECT DATE '2000-01-01' FROM DUAL;

使用 TO_DATE() 从字符串文字转换它 :

SELECT TO_DATE( '2001-01-01', 'YYYY-MM-DD' ) FROM DUAL;

(有关日期格式模型的更多信息,请参阅 Oracle 文档。)

要么:

SELECT TO_DATE(
         'January 1, 2000, 00:00 A.M.',
         'Month dd, YYYY, HH12:MI A.M.',
         'NLS_DATE_LANGUAGE = American'
       )
FROM   DUAL;

(如果要转换特定于语言的术语,例如月份名称,那么最好将第 3 个 nlsparam 参数包含在 TO_DATE() 函数中并指定预期的语言。)