首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将包含日期文本的字符串列用作日期字段的MySQL

问将包含日期文本的字符串列用作日期字段的MySQL
EN

Stack Overflow用户
提问于 2009-12-15 23:56:01
回答 3查看 14.9K关注 0票数 4

我正在进行数据库迁移,目前我有一个带有日期的字符串列(而不是为这些日期设置了最佳的日期时间字段)。在MySQL中有没有一个函数可以把这个字段转换成日期时间,这样我就可以使用日期特性了,比如在这个日期之前或者之后?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-16 00:00:42

代码语言:javascript
复制
SELECT  *
FROM    mytable
WHERE   CAST(mydatefield AS DATETIME) >= CAST('2009-01-01' AS DATETIME)

如果您的日期采用了MySQL无法理解的奇怪格式,请使用STR_TO_DATE

代码语言:javascript
复制
SELECT  *
FROM    mytable
WHERE   STR_TO_DATE(mydatefield, '%Y, %d %m') >= STR_TO_DATE('2009, 01 01', '%Y, %d %m')
票数 11
EN

Stack Overflow用户

发布于 2009-12-16 00:00:27

STR_TO_DATE函数- ref

示例:

代码语言:javascript
复制
select str_to_date('10-oct-2006', "%d-%b-%Y"); 
票数 2
EN

Stack Overflow用户

发布于 2009-12-16 00:00:35

从表中检索日期时,您始终可以将日期转换为时间戳:

代码语言:javascript
复制
SELECT *
FROM my_table
WHERE UNIX_TIMESTAMP(my_time) > UNIX_TIMESTAMP("2000-10-18 12:30:40");

如果调用时不带参数,则将Unix时间戳(自'1970-01-01 00:00:00‘UTC以来的秒数)作为无符号整数返回。如果使用日期参数调用UNIX_TIMESTAMP(),它将返回自'1970-01-01 00:00:00‘UTC以来的秒数。日期可以是日期字符串、日期时间字符串、时间戳或格式为YYMMDD或YYYYMMDD的数字。服务器将date解释为当前时区中的值,并将其转换为UTC格式的内部值。客户端可以按照9.7节“MySQL服务器时区支持”中的说明设置自己的时区。

有关更多信息,请查看MySQL网站上的UNIX_TIMESTAMP文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1908394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档