跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 关于 mysql DATE_FORMAT()函数的疑问
未分類
13 5 月 2020

关于 mysql DATE_FORMAT()函数的疑问

关于 mysql DATE_FORMAT()函数的疑问

資深大佬 : liubx 10

今天些业务使用了 springjdbc,发现了 DATE_FORMAT()的一个问题:

 select (DATE_FORMAT( '2018-12-31 10:37:12', '%Y-%m') = 2019-01) 为 true       select (DATE_FORMAT( '2018-12-31 10:37:12', '%Y-%m') = '2019-01') 为 false   

请问为什么会有这种结果啊?

还要为什么 jdbc 中的字符串转成 sql 后不会带上单引号,而 mybatis 会带上单引号?是 mybatis 做了这一步吗?

大佬有話說 (5)

  • 資深大佬 : jzmws

    select (DATE_FORMAT( ‘2018-12-31 10:37:12’, ‘%Y-%m’) = DATE_FORMAT( ‘2019-01’, ‘%Y-%m’) ) 为 true

  • 資深大佬 : qwerthhusn

    2019-01 这种东西是字面量吗?
    select 2019-01 得到的却是 2018
    不知道编译器怎么弄的

  • 資深大佬 : panzhc

    select timestamp(‘2020-04-28 23:06:00’) – timestamp(‘2020-04-28 23:05:00’);
    select timestamp(‘2020-04-28 23:06:00’) – timestamp(‘2020-04-28 23:05:30’);

  • 資深大佬 : qwerthhusn

    select DATE_FORMAT( ‘2018-12-31 10:37:12’, ‘%Y-%m’) = 2018; #返回 1
    select DATE_FORMAT( ‘2018-12-31 10:37:12’, ‘%Y-%m’) = ‘2018’; #返回 0
    select DATE_FORMAT( ‘2018-12-31 10:37:12’, ‘%Y-%m’) = ‘2018-12’; #返回 1

    那个 2019-01 没加引号会变成 2018,而上面的第一行也是 true

  • 資深大佬 : Aresxue

    不加字符串会认为是数字, 2019-01 会被当做 2019 – 1 = 2018, 所以会不等, 加上引号才是字符串, 对于你程序来说你是 String 类型所以转成 sql 就是带引号的字符串

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具