PostgreSQL文档中的date()函数描述

时间:2013-04-28 12:07:57

标签: postgresql date

我使用以下代码从PostgreSQL中的任何给定时间戳中提取日期部分:

SELECT DATE('2004-07-17 01:00:00'); 

上述声明正常,结果为2004-07-17

但是,PostgreSQL文档中描述的date()函数在哪里?

我在本节中广泛搜索过:http://www.postgresql.org/docs/9.2/static/functions-datetime.html,但到目前为止没有找到任何用处......

2 个答案:

答案 0 :(得分:4)

没有date()函数的描述,因为它只是迄今为止的cast刺激。与cast('2004-07-17 01:00:00' as date)'2004-07-17 01:00:00'::date一样。

如果我没记错的话,您可以使用date('2004-07-17 01:00:00')形式,因为内部所有的强制转换都是作为函数实现的,并且您直接调用其中一个函数。或者它可能只是另一种语法糖。

更新:您要搜索的手册部分是here。第4.2.9章。输入演员表。

还有一些关于如何实施演员表的有用信息here

更新2:手册中的引用:

  

注意:类似函数的语法实际上只是一个函数调用。什么时候   两个标准强制转换语法中的一个用于执行运行时   转换时,它将在内部调用已执行的注册函数   转换。按照惯例,这些转换函数具有   与其输出类型相同的名称,因此“函数式语法”是   只不过直接调用底层转换   功能。显然,这不是便携式应用程序的东西   应该依靠。有关详细信息,请参阅CREATE CAST。

答案 1 :(得分:2)

我认为这只是标准SQL的语法糖。在标准SQL中,您表达这样的日期; PostgreSQL接受相同的语法。

select date '2004-07-17 01:00:00'

同样,PostgreSQL返回值'2004-07-17',它的类型为“date”。我认为文档中最接近的是Date/Time Input中的这一段。 (但这记录了SQL标准,而不是语法糖。)

  

请记住,任何日期或时间文字输入都需要用单引号括起来,比如文本字符串。有关更多信息,请参见第4.1.2.7节。 SQL需要以下语法

     

输入[(p)]'value'

     

其中p是可选的精度规范,给出秒字段中的小数位数。可以为时间,时间戳和间隔类型指定精度。

此外,时间戳的语法类似。

select timestamp '2004-07-17 01:00:00'

请注意,此不会在PostgreSQL中工作。 。

select timestamp('2004-07-17 01:00:00')

但是这个会。

select "timestamp"('2004-07-17 01:00:00')