一、MySQL字符串轉時間格式
MySQL字符串轉時間格式是開發中經常遇到的問題,轉換的方式有多種,下面介紹兩種常用的方式:
1、使用STR_TO_DATE函數可以將字符串轉為時間格式:
SELECT STR_TO_DATE('2021-02-12 12:30:45', '%Y-%m-%d %H:%i:%s');
解釋:
STR_TO_DATE函數需要兩個參數,第一個參數是需要轉換的字符串,第二個參數是字符串的格式。例如上面的例子中,字符串的格式是’%Y-%m-%d %H:%i:%s’,其對應的是年月日時分秒。
2、使用日期/時間函數可以將字符串轉為時間格式:
SELECT DATE_FORMAT('2021-02-12 12:30:45', '%Y-%m-%d %H:%i:%s');
解釋:
DATE_FORMAT函數需要兩個參數,第一個參數是需要轉換的字符串,第二個參數是需要轉換成的格式。例如上面的例子中,需要將字符串轉換成年月日時分秒的格式,所以第二個參數是’%Y-%m-%d %H:%i:%s’。
二、MySQL字符串轉整數
將字符串轉換為整數時需要使用CAST函數或者CONVERT函數。
1、使用CAST函數:
SELECT CAST('123' AS SIGNED);
解釋:
CAST函數需要兩個參數,第一個參數是需要轉換的字符串,第二個參數是需要轉換成什麼類型。例如上面的例子中,需要將字符串轉換成有符號的整數類型,所以第二個參數是SIGNED。
2、使用CONVERT函數:
SELECT CONVERT('123', SIGNED);
解釋:
CONVERT函數需要兩個參數,第一個參數是需要轉換的字符串,第二個參數是需要轉換成什麼類型。例如上面的例子中,需要將字符串轉換成有符號的整數類型,所以第二個參數是SIGNED。
三、MySQL字符串轉時間格式字符串
將字符串轉換成時間格式字符串時需要使用DATE_FORMAT函數。
SELECT DATE_FORMAT('2021-02-12 12:30:45', '%Y年%m月%d日 %H時%i分%s秒');
解釋:
DATE_FORMAT函數需要兩個參數,第一個參數是需要轉換的字符串,第二個參數是需要轉換成的格式。例如上面的例子中,需要將字符串轉換成’2021年02月12日 12時30分45秒’的格式,所以第二個參數是’%Y年%m月%d日 %H時%i分%s秒’。
四、MySQL字符串轉數組
將一個多列字符串轉換成數組時可以使用SUBSTRING_INDEX函數和TRIM函數。
SELECT TRIM(BOTH ' ' FROM SUBSTRING_INDEX('a,b,c,d', ',', 1)) AS col_1, TRIM(BOTH ' ' FROM SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d', ',', 2), ',', -1)) AS col_2, TRIM(BOTH ' ' FROM SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d', ',', 3), ',', -1)) AS col_3, TRIM(BOTH ' ' FROM SUBSTRING_INDEX(SUBSTRING_INDEX('a,b,c,d', ',', 4), ',', -1)) AS col_4;
解釋:
SUBSTRING_INDEX函數需要三個參數,第一個參數是需要轉換的字符串,第二個參數是分隔符,第三個參數是需要取出的位置。例如上面的例子中,需要將字符串’a,b,c,d’轉換成數組,並且每個元素去掉空格。第一個元素可以使用SUBSTRING_INDEX(‘a,b,c,d’, ‘,’, 1)得到,取出的位置是1,也就是第一個。每個元素依次類推。
五、MySQL字符串轉時間函數
MySQL提供了許多函數可以將字符串轉換成時間類型,在這裡介紹幾個常用的函數。
1、NOW函數可以獲取當前時間:
SELECT NOW();
2、UNIX_TIMESTAMP函數可以將時間類型轉換為UNIX時間戳:
SELECT UNIX_TIMESTAMP('2021-02-12 12:30:45');
3、FROM_UNIXTIME函數可以將UNIX時間戳轉換為時間類型:
SELECT FROM_UNIXTIME(1613082645);
六、MySQL字符串轉時間格式hms
將字符串轉換為時間格式HMS時需要使用TIME_FORMAT函數。
SELECT TIME_FORMAT('12:30:45', '%H時%i分%s秒');
解釋:
TIME_FORMAT函數需要兩個參數,第一個參數是需要轉換的字符串,第二個參數是需要轉換成的格式。例如上面的例子中,需要將字符串’12:30:45’轉換成’12時30分45秒’的格式,所以第二個參數是’%H時%i分%s秒’。
七、MySQL字符串轉數字
將字符串轉換為數字時可以使用CAST函數或CONVERT函數。
1、使用CAST函數:
SELECT CAST('123' AS SIGNED);
解釋:
CAST函數需要兩個參數,第一個參數是需要轉換的字符串,第二個參數是需要轉換成什麼類型。例如上面的例子中,需要將字符串轉換成有符號的整數類型,所以第二個參數是SIGNED。
2、使用CONVERT函數:
SELECT CONVERT('123', SIGNED);
解釋:
CONVERT函數需要兩個參數,第一個參數是需要轉換的字符串,第二個參數是需要轉換成什麼類型。例如上面的例子中,需要將字符串轉換成有符號的整數類型,所以第二個參數是SIGNED。
八、MySQL時間函數
MySQL提供了很多有用的時間函數,下面介紹其中的一部分。
1、DATE_ADD函數用於加上一個時間間隔:
SELECT DATE_ADD('2021-02-12', INTERVAL 1 DAY);
2、DATE_SUB函數用於減去一個時間間隔:
SELECT DATE_SUB('2021-02-12', INTERVAL 1 DAY);
3、DATEDIFF函數用於計算兩個日期之間的天數:
SELECT DATEDIFF('2021-02-12', '2021-02-10');
九、MySQL時間格式
MySQL支持多種時間格式,下面介紹一些常用的格式。
1、YYYY-MM-DD HH:MM:SS:
例如:2021-12-31 23:59:59
2、YYYY-MM-DD:
例如:2021-12-31
3、HH:MM:SS:
例如:23:59:59
4、UNIX_TIMESTAMP:
UNIX時間戳格式
十、MySQL轉換時間格式
MySQL提供了許多函數可以將時間轉換為指定的格式。
1、DATE_FORMAT函數可以將日期/時間格式化成指定的格式:
SELECT DATE_FORMAT('2021-02-12 12:30:45', '%Y年%m月%d日 %H時%i分%s秒');
2、STR_TO_DATE函數可以將字符串轉換成日期/時間格式:
SELECT STR_TO_DATE('2021-02-12', '%Y-%m-%d');
3、CONVERT_TZ函數可以將日期/時間轉換為指定時區的時間:
SELECT CONVERT_TZ('2021-02-12 12:30:45', '+00:00', '+08:00');
解釋:
CONVERT_TZ函數需要三個參數,第一個參數是日期/時間,第二個參數是原始時區,第三個參數是目標時區。例如上面的例子中,需要將UTC時間轉換為東八區時間,所以原始時區是+00:00,目標時區是+08:00。
原創文章,作者:CIWVA,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/370763.html