在SQL中使用截断日期

时间:2019-03-05 13:07:52

标签: sql oracle oracle11g

谁能向我解释oracle中trunc(date)函数的工作。 我的查询如下。

using FluentAssertions;
using FluentAssertions.Extensions;

collection.Should().Contain(item, config => config.Excluding(item => item.MyProperty));

我没有传递任何格式类型。 如果我比较表中的日期而没有trunc(date),则不会给出任何输出。 如果将日期表与trunc(date)比较,它将给我适当的输出。 请说明其运作方式。 并且trunc函数是否有替代品,因为它花费了太多时间。

1 个答案:

答案 0 :(得分:2)

trunc(tran_date)返回date列的日期部分,没有时间部分(在一天的开始午夜)。

尽管名称如此,Oracle中的date数据类型仍包含时间。这甚至更加令人困惑,因为有时您看不到结果集中的时间(取决于您访问数据的方式)。

您要比较的日期没有时间成分。因此,该比较适用于trunc()。但是tran_date上的时间部分会阻止在没有trunc()的情况下进行比较。