PgSql(PostgreSQL)日期比较,mybatis 传参处理(字符串,日期)

字符串类型

Java:mapper

List<UserInfo> selectList(@Param("startTime") String startTime);

mybatis XML

方式一(::双冒号):

使用::双冒号进行类型转换

    <select id="selectList" resultType="com.entity.UserInfo" parameterType="java.util.List">
        SELECT *
        from user_info
        WHERE
        create_time &gt;= #{startTime}::timestamp
        and
        create_time &lt;= '2020-07-07 16:35:02'
    </select>

PS:

#{startTime}::timestamp 可根据需要,替换为 date

timestamp:时间戳,转化后带时分秒

date:日期类型,转化后不带时分秒

方式二(TO_TIMESTAMP()):

使用TO_TIMESTAMP()方法,将字符串转化为时间戳类型,格式如第二个参数所示,可按需转化,但结果都是时间戳;

同样的,你也可以使用TO_DATE()方法,转化为日期类型

    <select id="selectList" resultType="com.entity.UserInfo" parameterType="java.util.List">
        SELECT *
        from user_info
        WHERE
        create_time &gt;= TO_TIMESTAMP(#{startTime}, 'yyyy-mm-dd hh24:mi:ss')
        and
        create_time &lt;= '2020-07-07 16:35:02'
    </select>

日期类型

日期类型没啥好说的,直接放,直接用

mybatis XML

    <select id="selectList" resultType="com.entity.UserInfo" parameterType="java.util.List">
        SELECT *
        from user_info
        WHERE
        create_time &gt;= #{startTime}
        and
        create_time &lt;= '2020-07-07 16:35:02'
    </select>

 

 

pgSQL中,可以使用to_date函数将字符串转换为日期格式。这个函数的语法是to_date(string, format)。其中,string是要转换的字符串,format是表示日期格式的模式。例如,如果你想将字符串'2021-09-30'转换为日期格式,可以使用to_date('2021-09-30', 'yyyy-MM-dd')。这将返回一个日期值,可以与其他日期进行比较或进行其他操作。 另外,在pgSQL中,还可以使用to_timestamp函数将字符串转换为时间戳格式。这个函数的语法是to_timestamp(string, format)。其中,string是要转换的字符串,format是表示日期格式的模式。例如,如果你想将字符串'2021-09-30 12:34:56'转换为时间戳格式,可以使用to_timestamp('2021-09-30 12:34:56', 'yyyy-MM-dd HH24:MI:SS')。这将返回一个表示时间戳的值,可以用于进行日期和时间的计算和比较。 需要注意的是,在mapper文件中使用字符串日期时,可能会遇到类型不匹配的错误。这是因为mapper文件对于不同的数据类型有特定的限制。在mapper文件中,varchar类型的字段不能与日期类型进行比较。因此,需要在mapper文件中使用其他方法来处日期字符串转换的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [postgresql + mybatis入时间参数的问题.md](https://download.csdn.net/download/qq_35247292/12291081)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [postgresql数据库的 to_date 和 to_timestamp 将 字符串转换为时间格式](https://blog.csdn.net/sky_limitless/article/details/79527665)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值