没有小时、分钟、秒的 Oracle current_date 或 sysdate [重复]
Posted
技术标签:
【中文标题】没有小时、分钟、秒的 Oracle current_date 或 sysdate [重复]【英文标题】:Oracle current_date or sysdate without hours, minutes, seconds [duplicate] 【发布时间】:2013-03-30 19:46:34 【问题描述】:在使用current_date
或sysdate
时,有什么办法可以摆脱一天中的时间。我试图只将日期存储为 YYYY-MM-DD
,但 current_date 给了我 YYYY-MM-DD HH:MM:SS:MS
或者在比较日期时,它只比较日期而不是时间。任何帮助都会很棒,谢谢。
【问题讨论】:
相关:***.com/q/7604167/1065197 时间格式HH:MM:SS:MS
错误。 MM
代表数字月份(MS
也无法识别)。应该是HH:MI:SS
。如果您需要毫秒,则需要使用 TIMESTAMP
数据类型,因为 Oracle 仅将直到秒的分数存储在 DATE
类型字段中。
在 Oracle 中,DATE 数据类型包含字段 YEAR、MONTH、DAY、HOURS、MINUTES 和 SECONDS。 Oracle 中没有仅存储 YEAR、MONTH 和 DAY 字段的数据类型。
【参考方案1】:
也许你应该试试
trunc(sysdate)
功能。
【讨论】:
将时间存储为 00:00:00 但仍然有效。谢谢。 是的,它仍然是日期类型,但本身没有确切的时间。 这对性能有什么影响?【参考方案2】:Rusty 回答了您关于剥离时间部分的问题。比较日期时加入时间的部分通常是这样完成的。
where YourDateField >= StartDate
and YourDateField < TheDayAfterEndDate
如果要搜索特定日期,StartDate 和 EndDate 将是相同的。
【讨论】:
我真的很喜欢StartDate <= YourDateField and YourDateField < TheDayAfterEndDate
有点像数学里的 x <= y < z
。以上是关于没有小时、分钟、秒的 Oracle current_date 或 sysdate [重复]的主要内容,如果未能解决你的问题,请参考以下文章