Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql:迄今为止的整数_Postgresql_Date - Fatal编程技术网

Postgresql:迄今为止的整数

Postgresql:迄今为止的整数,postgresql,date,Postgresql,Date,我在将整数日期(20180525)转换为YYYY-MM-DD格式的日期时遇到问题。是否有办法做到这一点,或者我应该将其转换为代码(本例中为Java)?在此方面的任何帮助都将不胜感激。谢谢大家! 如果您的日期存储为带有YYYYMMDD的整数,则可以通过首先强制转换到TEXT将其传递给日期函数 SELECT date(20180525::TEXT) 否则,请使用函数将日期与日期格式化程序结合使用: SELECT to_date(20180525::text, 'YYYYMMDD') tl;博士

我在将整数日期(20180525)转换为YYYY-MM-DD格式的日期时遇到问题。是否有办法做到这一点,或者我应该将其转换为代码(本例中为Java)?在此方面的任何帮助都将不胜感激。谢谢大家!

如果您的日期存储为带有YYYYMMDD的整数,则可以通过首先强制转换到
TEXT
将其传递给日期函数

SELECT date(20180525::TEXT)
否则,请使用函数将日期与日期格式化程序结合使用:

SELECT to_date(20180525::text, 'YYYYMMDD')
tl;博士 SQL或Java都可以很好地工作。有关SQL,请参阅Ali提供的

对于Java,将a传递给查询

2018-05-25

java.time 关于问题中提到的Java,下面是使用现代Java.time类的代码。您应该使用SQL还是Java来解析字符串取决于您的情况和喜好,因为这两种方法都是有效的

LocalDate
该类表示一个仅限日期的值,不包含一天中的时间和时区

您需要指定与输入匹配的格式模式。在这种情况下,您的输入字符串采用标准ISO 8601格式。具体地说,是ISO 8601格式的“基本”变体,它最大限度地减少了分隔符的使用。在java.time中,您将为您找到

ld.toString():2018-05-25

JDBC 从4.2及更高版本开始,您可以直接与数据库交换java.time对象。最好使用智能对象而不是哑字符串

String sql = "SELECT event_date FROM tbl WHERE event_date = ? ; " ;
…
myPreparedStatement.setObject( 1 , ld ) ;
和检索

LocalDate ld = myResultSet.getObject( … , LocalDate.class ) ;

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*

从哪里获得java.time类

  • 然后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 更高版本的Android捆绑包实现了java.time类

    • 对于早期的Android(20180525-在我看来不像一个整数日期,它看起来像一个没有空格的字符串日期。20180525-626在postgres中安装java只是为了这么做,这看起来像是很难做到的way@Jasen不,我指的是客户端应用程序代码。请注意
      字符串sql
      行。
      String sql = "SELECT event_date FROM tbl WHERE event_date = ? ; " ;
      …
      myPreparedStatement.setObject( 1 , ld ) ;
      
      LocalDate ld = myResultSet.getObject( … , LocalDate.class ) ;