`
昔雪似花
  • 浏览: 204696 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mysql to_days,str_to_date函数的使用

 
阅读更多
如果你操作数据库时想通过时间加以限制,那么请以这样的形式存储时间:year-month-day hour:minute:second,给一个linux下的存储方法:void  *gettime(char name[])  
{
struct tm *p;
//char name[512];
char c[5];
        time_t t;
        t=time(NULL);
        p=localtime(&t);
        sprintf(c,"%d",1900+p->tm_year);
        strcat(name,c);
        strcat(name,"-");
        if(1+p->tm_mon<10)
        strcat(name,"0");
        sprintf(c,"%d",1+p->tm_mon);
        strcat(name,c);
        strcat(name,"-");
        if(p->tm_mday<10)
        strcat(name,"0");
        sprintf(c,"%d",p->tm_mday);
        strcat(name,c);
        strcat(name," ");
        if (p->tm_hour<10)
        strcat(name,"0");
        sprintf(c,"%d",p->tm_hour);
        strcat (name,c);
        strcat(name,":");
        if(p->tm_min<10)
        strcat(name,"0");
        sprintf(c,"%d",p->tm_min);
        strcat(name,c);
        strcat(name,":");
        if(p->tm_sec<10)
        strcat(name ,"0");
       sprintf(c,"%d",p->tm_sec);
       strcat(name,c);
      printf("current time is:%s\n",name);
}
时间被转换成了字符串,然后存储到数据库里,之后如果想查某个时间之前的,或者某个时间之后的,或者某个时间区间,那么就要再次将字符串转换成时间,两个函数to_days,str_to_date。
(1)to_days
就像它的名字一样,它只能转换到每一天,就是说一天的时间字符串会被转换成一个数,如
mysql> select to_days('2010-11-22 14:39:51'); 
+--------------------------------+
| to_days('2010-11-22 14:39:51') | +--------------------------------+ | 734463 | +--------------------------------+

mysql> select to_days('2010-11-23 14:39:51'); +--------------------------------+ | to_days('2010-11-23 14:39:51') | +--------------------------------+ | 734464 | +--------------------------------+
可以看出22日与23日的差别就是,转换之后的数增加了1,这个粒度的查询是比较粗糙的,可能不能满足我们的查询要求,那么就引入细粒度的查询方法str_to_date。
(2)str_to_date
这个函数可以把字符串时间完全的翻译过来,就很好用了。
mysql> select str_to_date("2010-11-23 14:39:51",'%Y-%m-%d %H:%i:%s');
+--------------------------------------------------------+
| str_to_date("2010-11-23 14:39:51",'%Y-%m-%d %H:%i:%s') |
+--------------------------------------------------------+
| 2010-11-23 14:39:51                                    |
+--------------------------------------------------------+

我针对自己的数据库的一个查询操作
select str_to_date(detectResult.`rcvDetectTime`,'%Y-%m-%d %H:%i:%s') from detectResult where str_to_date(detectResult.`rcvDetectTime`,'%Y-%m-%d %H:%i:%s')>='2010-11-22 14:49:52' and str_to_date(detectResult.`rcvDetectTime`,'%Y-%m-%d %H:%i:%s')<='2010-11-22 15:27:52'

看一下结果吧

+---------------------------------------------------------------+ | str_to_date(detectResult.`rcvDetectTime`,'%Y-%m-%d %H:%i:%s') | +---------------------------------------------------------------+ | 2010-11-22 14:50:31 | | 2010-11-22 14:51:51 | | 2010-11-22 14:53:11 | | 2010-11-22 14:54:31 | | 2010-11-22 14:55:51 | | 2010-11-22 14:57:11 | | 2010-11-22 14:58:31 | | 2010-11-22 14:59:51 | | 2010-11-22 15:01:11 | | 2010-11-22 15:02:31 | | 2010-11-22 15:03:51 | | 2010-11-22 15:05:11 | | 2010-11-22 15:06:31 | | 2010-11-22 15:07:51 | | 2010-11-22 15:09:11 | | 2010-11-22 15:10:31 | | 2010-11-22 15:11:51 | | 2010-11-22 15:13:12 | | 2010-11-22 15:14:32 | | 2010-11-22 15:15:52 | | 2010-11-22 15:17:12 | | 2010-11-22 15:18:32 | | 2010-11-22 15:19:52 | | 2010-11-22 15:21:12 | | 2010-11-22 15:22:32 | | 2010-11-22 15:23:52 | | 2010-11-22 15:25:12 | | 2010-11-22 15:26:32 | | 2010-11-22 15:27:52 | +---------------------------------------------------------------+
这样就可以按照时间进行查询了,对于实验结果的分析方便了很多。
分享到:
评论

相关推荐

    MySQL常用函数大全

    - `SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(birthday)), '%Y') + 0 AS age FROM employee;` - **注意**: 如果`birthday`为空,则年龄会被设置为0。 - **另一个计算年龄的方法**: - `SELECT DATE...

    Mysql中类型转换

    这个查询首先使用`STR_TO_DATE()`函数将字符串转换为日期类型,然后进行日期范围比较。通过这种方式,即使原始数据的类型不符合预期,我们也能够正确地获取到所需的结果。 #### 四、总结 通过对MySQL中类型转换...

    mysql常用日期时间/数值函数详解(必看)

    5. **字符串转换为日期函数:str_to_date** `str_to_date()` 用于将字符串转换成日期和时间格式。函数的第二个参数定义了字符串的日期时间格式。例如,`str_to_date('2013-01-01 01:21:01', '%Y-%m-%d %H:%i:%s')` ...

    mysql 日期和时间函数

    在实际应用中,这些函数可以与其他SQL函数和操作符一起使用,比如`DATE_ADD()`, `DATE_SUB()`, `STR_TO_DATE()`, `DATE_FORMAT()`等,以满足各种复杂的时间计算需求。了解并熟练掌握这些函数,能显著提高你在处理...

    mysqlAPI--日期和时间函数.docx

    36. STR_TO_DATE():转换一个字符串的日期 37. SUBDATE():DATE_SUB()的同义词,有三个参数调用 38. SUBTIME():减去时间 39. SYSDATE():返回函数执行的时间 40. TIME_FORMAT():随着时间的格式 41. TIME_TO_SEC()...

    mysqlAPI--日期和时间函数.pdf

    19. **STR_TO_DATE()**: 将字符串转换为日期或日期时间值,支持自定义的日期时间格式。 20. **SUBDATE(), SUBTIME()**: 减去时间间隔,与 `DATE_SUB()` 和 `ADDTIME()` 相对应。 21. **SYSDATE()**: 返回函数执行...

    mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句

    另外,`STR_TO_DATE()`函数可以用于更复杂的日期字符串转换,提供更多的灵活性。 这些SQL查询方法在日常的业务分析中非常实用,能帮助我们快速获取特定时间段内的数据,以便进行统计分析和报表生成。理解并熟练运用...

    mysql日期处理函数实例解析

    以上只是MySQL日期处理函数的一部分,实际上还有很多其他功能,如`LAST_DAY(date)`(返回给定日期所在的月份的最后一天),`WEEK(date, mode)`(返回日期是一年中的第几周),`STR_TO_DATE(str, format)`(将字符串...

    SQL中常用的的时间跟日期函数

    - `STR_TO_DATE(date_string, format)`:将字符串转换为日期或时间。 - `DATE_FORMAT(date, format)`:将日期或时间格式化为指定格式的字符串。 3. **日期和时间的加减** - `DATE_ADD(date, INTERVAL value unit...

    一场Pandas与SQL的巅峰大战三1

    SQL中的日期运算则需要使用特定的函数,如MySQL的`DATE_ADD()`和`DATE_SUB()`,或者Hive的`DATE_ADD()`和`DATE_SUB()`。 总之,无论是Pandas还是SQL,都能有效地处理日期和时间。在实际工作中,根据任务需求和数据...

    MySQL中ADDDATE()函数的使用教程

    在MySQL中,除了ADDDATE()和DATE_ADD(),还有许多其他日期和时间函数,如NOW()、DATE_FORMAT()、STR_TO_DATE()等,这些函数共同构成了强大的日期时间处理工具集。 在开发过程中,你可能会遇到各种各样的问题,例如...

    Python库 | time_decode-3.1.1.tar.gz

    human_date = td.timestamp_to_str(timestamp) print(human_date) # 输出:2021-01-01 00:00:00 # 解析自定义格式的日期字符串 custom_date = "2021/01/01" parsed_date = td.parse_date(custom_date, format="%Y/%...

    MySQL中日期和时间戳互相转换的函数和方法

    例如,你可以使用`STR_TO_DATE()`和`DATE_FORMAT()`函数来解析或格式化日期,或者结合`TIMESTAMP()`和`FROM_DAYS()`函数来处理不同的日期表示形式。在实际应用中,你可能需要结合这些函数,以适应不同的业务需求。 ...

    php选择日期

    PHP的`filter_var()`函数可以配合`FILTER_VALIDATE_DATE`过滤器进行验证,或者使用`checkdate()`函数: ```php $date = '2022-02-30'; if (filter_var($date, FILTER_VALIDATE_DATE)) { echo '日期有效'; } else {...

    在php和MySql中计算时间差的方法详解

    需要注意的是,MySQL中的`DATE_ADD()`和`DATE_SUB()`函数可以用来增加或减少日期,而`STR_TO_DATE()`和`DATE_FORMAT()`则可以方便地进行日期字符串的转换。 总的来说,在PHP和MySQL中计算时间差涉及多种函数和方法...

    收集的php面试题目集锦

    - 定义一个递归函数 `reverse_rc($str)` 来实现字符串的反转。这种方法适用于包含多字节字符的字符串。 - 这种方式可以正确处理如中文等多字节字符,保证不会破坏这些字符的完整性。 ### MySQL日期与时间函数 ##...

    分享一些常见的PHP面试题

    使用`date()`函数结合`strtotime()`函数,可以打印出前一天的日期和时间: ```php echo date('Y-m-d H:i:s', strtotime('-1 days')); ``` 5. **echo(), print(), print_r()的区别** - `echo`:语句,用于快速...

Global site tag (gtag.js) - Google Analytics