本文目錄一覽:
java、mysql字符串比較大小
可以啊,字符串是可以比較大小的。
不過要注意,你要確保count裡面都是數字,可別什麼亂七八糟的字符都有啊。
還要保證比較的字符串的長度相同,用lengt(count)=3來限定。如果min和max是變量,那麼就拼sql,然後把min.length()給拼接進去。
MySQL數據庫中如何用date類型的數據與類似於“2015-01-02”的字符串進行比較?
用date_format(date,’yyyy-mm-dd’) 函數 把date轉換成你想要的格式的字符串,然後直接就可以比較了
mysql兩個數字型字符串比較!詳細如下
我的答案是純手打的,請認真看,不要浪費我的表情哦~
如果以字符串存儲,格式就是 年月日(20120101等於2012-01-01)的話
首先把 日期字符串 轉換成 合格的日期
concat_ws(連接符號,字符串1,字符串2…)
第一步代碼:
SELECT
CONCAT_WS(‘-‘,
SUBSTRING(‘20120101’,1,4),
SUBSTRING(‘20120101’,5,2),
SUBSTRING(‘20120101’,7,2) ) AS 開始日期 ,
CONCAT_WS(‘-‘,
SUBSTRING(‘20120608’,1,4),
SUBSTRING(‘20120608’,5,2),
SUBSTRING(‘20120608’,7,2) ) AS 結束日期 ;
————————————————————
第二步,將日期使用日期運算函數進行相減:
TIMESTAMPDIFF(返回結果,日期1,日期2)
最終代碼:
SELECT
CONCAT_WS(‘-‘,
SUBSTRING(‘20120101’,1,4),
SUBSTRING(‘20120101’,5,2),
SUBSTRING(‘20120101’,7,2) ) AS 開始日期 ,
CONCAT_WS(‘-‘,
SUBSTRING(‘20120608’,1,4),
SUBSTRING(‘20120608’,5,2),
SUBSTRING(‘20120608’,7,2) ) AS 結束日期 ,
TIMESTAMPDIFF(
DAY,
CONCAT_WS(‘-‘,
SUBSTRING(‘20120101’,1,4),
SUBSTRING(‘20120101’,5,2),
SUBSTRING(‘20120101’,7,2) ) ,
CONCAT_WS(‘-‘,
SUBSTRING(‘20120608’,1,4),
SUBSTRING(‘20120608’,5,2),
SUBSTRING(‘20120608’,7,2) )
) AS 相差天數
;
————————————————————————————-
不好意思,看錯題目,我以為你是要運算。如果是比較,就先把日期轉換為時間戳進行比較是這樣:
unix_timestamp(日期)
SELECT
unix_timestamp(
CONCAT_WS(‘-‘,
SUBSTRING(‘20120101’,1,4),
SUBSTRING(‘20120101’,5,2),
SUBSTRING(‘20120101’,7,2) )
) AS 開始日期,
unix_timestamp(
CONCAT_WS(‘-‘,
SUBSTRING(‘20120608’,1,4),
SUBSTRING(‘20120608’,5,2),
SUBSTRING(‘20120608’,7,2) )
) AS 開始結束;
————————————————————————–
直接判斷即可
新建一個數據庫來驗證:
CREATE DATABASE test5_4_17
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE UTF8_BIN;
#新建一個test_4_17 使用utf8字符串
USE test5_4_17;
#打開數據庫
CREATE TABLE test(
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
date_v VARCHAR(30) NOT NULL
);
INSERT INTO test VALUES(NULL,’20110303′);
INSERT INTO test VALUES(NULL,’20120303′);
INSERT INTO test VALUES(NULL,’20120304′);
INSERT INTO test VALUES(NULL,’20130303′);
SELECT * FROM test; #查看數據有了
SELECT * FROM
test
WHERE
UNIX_TIMESTAMP(date_v) =
unix_timestamp(
CONCAT_WS(‘-‘,
SUBSTRING(‘20120101’,1,4),
SUBSTRING(‘20120101’,5,2),
SUBSTRING(‘20120101’,7,2) )
)
AND
UNIX_TIMESTAMP(date_v) =
unix_timestamp(
CONCAT_WS(‘-‘,
SUBSTRING(‘20120608’,1,4),
SUBSTRING(‘20120608’,5,2),
SUBSTRING(‘20120608’,7,2) )
)
結果是
20120303
20120304
—————————————————————————————–
參數中的 日期字符串 可以換成 字段名
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/272443.html