MySQL字符varchar转换为int、date

MySQL字符varchar转换为int、date,第1张

1.varchar转int

函数:cast

用法:cast(字段 as SIGNED INTEGER)

或者cast(字段 as UNSIGNED INTEGER))

例如:SELECT CAST(DATE_FORMAT(NOW(),"%Y%m%d") as SIGNED INTEGER)

2.varchar转date

函数:str_to_date(字段,字符串格式)

用法:select str_to_date(字段,'%Y-%m-%d') from tablea limit 100;

根据日期进行选取

选取日期大于2019年的所有字段

例如:select * from tablea where str_to_date(tablea.日期,'%Y-%m-%d')>'2019-00-00'

无需转换的

你可以使用常用的格式集中的任何一个指定 DATETIME、DATE 和 TIMESTAMP 值:

一个 'YYYY-MM-DD HH:MM:SS' 或 'YY-MM-DD HH:MM:SS' 格式的字符串。一个“宽松”的语法是被允许的:以任何标点符号作为日期部分和时间部分中的定界符。例如,'98-12-31 11:30:45'、'98.12.31 1+30+45'、'98/12/31 11*30*45' 和 '98@12@31 11^30^45' 均是等价的。

一个 'YYYY-MM-DD' 或 'YY-MM-DD' 格式的字符串。这里,一个“宽松”的语法同样也是被允许的:例如,'98.12.31'、'98-12-31'、'98/12/31' 和 '98@12@31' 是等价的。

一个无定界符的 'YYYYMMDDHHMMSS' 或 'YYMMDDHHMMSS' 格式的字符串,只要字符串看起来像是一个日期。例如,'19970523091528' 和 '970523091528' 均被解释为 '1997-05-23 09:15:28',但是 '971122129015' 却是违法的(它的分部分是无意义的),该值被插入时将变成 '0000-00-00 00:00:00'。

一个无定界符的 'YYYYMMDD' 或 'YYMMDD' 格式的字符串,只要字符串看起来像是一个日期。例如,'19970523' 和 '970523' 被解释成为 '1997-05-23',但是 '971332' 却是违法的(它的月和日部分是无意义的),该值被插入时将变成 '0000-00-00'。

一个 YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的数字,只要数字看起来像是一个日期。例如,19830905132800 和 830905132800 被解释成为 '1983-09-05 13:28:00'。

一个 YYYYMMDD 或 YYMMDD 格式的数字,只要数字看起来像是一个日期。例如,19830905 和 830905 被解释成为 '1983-09-05'。

在一个 DATETIME、DATE 或 TIMESTAMP 语境中,一个函数的返回值将随之而变化,例如 NOW() 或 CURRENT_DATE。

非法的 DATETIME、DATE 或 TIMESTAMP 值将会被转换到适当形式的“零”值('0000-00-00 00:00:00'、'0000-00-00' 或 00000000000000)。

如何在MySQL中把一个字符串转换成日期,分为以下两种情况:

1.

无需转化的

SELECT

*

FROM

表名 WHERE

date_sy>'2016-12-01'

AND

date_sy<'2016-12-05'

2.

使用DATE_FORMAT

SELECT

*

FROM

表名

WHERE

DATE_FORMAT(

date_sy,

'%Y-%m-%d')>'2016-12-01'

AND

DATE_FORMAT(

date_sy,

'%Y-%m-%d')<'2016-12-05'


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6136804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存