MySQL日期和时间函数讲授
MySQL日期和时间函数讲解 1. NOW、CURRENT_TIMESTAMP和SYSDATE 这些函数都能返回当前的系统时间,它们之间有区别吗?先来看个例子。 mysql?SELECT?NOW(),CURRENT_TIMESTAMP(),SYSDATE()\G; ***************************?1. row?*************************** NO
MySQL日期和时间函数讲解1. NOW、CURRENT_TIMESTAMP和SYSDATE
这些函数都能返回当前的系统时间,它们之间有区别吗?先来看个例子。
mysql>?SELECT?NOW(),CURRENT_TIMESTAMP(),SYSDATE()\G;***************************?1. row?***************************
NOW():?2011-02-04?20:35:04
CURRENT_TIMESTAMP():?2011-02-04?20:35:04
SYSDATE():?2011-02-04?20:35:04
从上面的例子看来,3个函数都是返回当前的系统时间,再来看下面这个例子:
mysql>SELECT->?????NOW(),
->???? CURRENT_TIMESTAMP(),
->???? SYSDATE(),
->???? SLEEP(2),
->?????NOW(),
->???? CURRENT_TIMESTAMP(),
->???? SYSDATE()\G
***************************?1. row?***************************
NOW():?2011-11-29?21:04:49
CURRENT_TIMESTAMP():?2011-11-29?21:04:49
SYSDATE():?2011-11-29?21:04:49
SLEEP(2):?0
NOW():?2011-11-29?21:04:49
CURRENT_TIMESTAMP():?2011-11-29?21:04:49
SYSDATE():?2011-11-29?21:04:51
1?row in?set?(2.00?sec)
在上面这个例子中人为地加入了SLEEP函数,让其等待2秒,这时可以发现SYSDATE返回的时间和NOW及CURRENT_TIMESTAMP是不同的,SYSDATE函数慢了2秒。究其原因是这3个函数有略微区别:
CURRENT_TIMESTAMP是NOW的同义词,也就是说两者是相同的。
SYSDATE函数返回的是执行到当前函数时的时间,而NOW返回的是执行SQL语句时的时间。
因此在上面的例子中,两次执行SYSDATE函数返回不同的时间是因为第二次调用执行该函数时等待了前面SLEEP函数2秒。而对于NOW函数,不管是在SLEEP函数之前还是之后执行,返回的都是执行这条SQL语句时的时间。
2.时间加减函数
先来看一个例子。
mysql>?SELECT?NOW(),NOW()+0\G;***************************?1. row?***************************
NOW():?2011-02-04?20:46:33
NOW()+0:?20110204204633.000000
1?row in?set?(0.00?sec)
可以看到,NOW()函数可以返回时间,也可以返回一个数字,就看用户如何使用。如果相对当前时间进行增加或减少,并不能直接加上或减去一个数字,而需要使用特定的函数,如DATE_ADD或DATE_SUB,前者表示增加,后者表示减少。其具体的使用方法有DATE_ADD(date,INTERVAL expr unit)和 DATE_SUB(date,INTERVAL expr unit),示例如下:
mysql>?SELECT?NOW()?AS?now,DATE_ADD(now(),INTERVAL?1?DAY)?AS?tomorrow,
DATE_SUB(now(),INTERVAL?1?DAY)?AS?yesterday\G;
***************************?1. row?***************************
now:?2011-02-04?20:53:25
tomorrow:?2011-02-05?20:53:25
yesterday:?2011-02-03?20:53:25
1?row in?set?(0.00?sec)
其中expr值可以是正值也可以是负值,因此可以使用DATE_ADD函数来完成DATE_SUB函数的工作,例如:
mysql>?SELECT?NOW()?AS?now,DATE_ADD(NOW(),INTERVAL?1?DAY)?AS?tomorrow,
DATE_ADD(NOW(),INTERVAL?-1?DAY)?AS?yesterday\G;
***************************?1. row?***************************
now:?2011-02-04?20:55:40
tomorrow:?2011-02-05?20:55:40
yesterday:?2011-02-03?20:55:40
1?row in?set?(0.00?sec)
还有一个问题,如果是闰月,那么DATE_ADD函数怎么处理呢?MySQL的默认行为是这样的:如果目标年份是闰月,那么返回的日期为2月29日;如果不是闰月,那么返回日期是2月28日。示例如下:
mysql>?SELECT?DATE_ADD(’2000-2-29′,INTERVAL 4 YEAR) AS year;+————+
|?year????????|
+————+
|?2004-02-29?|
+————+
1?row in?set?(0.00?sec)
?
mysql>?SELECT?DATE_ADD(’2000-2-29′,INTERVAL 1 YEAR) AS year;
+————+
|?year????????|
+————+
|?2001-02-28?|
+————+
1?row in?set?(0.00?sec)
在上面的例子中使用了DAY和YEAR数据类型,其实也可以使用MICROSECOND、SECOND、MINUTE、HOUR、WEEK、MONTH等类型,例如:
mysql>?SELECT?NOW()?AS?now,DATE_ADD(NOW(), INTERVAL?1?HOUR)?AS?next?time\G;
***************************?1. row?***************************
now:?2011-02-04?21:00:15
next?time:?2011-02-04?22:00:15
1?row in?set?(0.00?sec)
3. DATE_FORMAT函数
这个函数本身没有什么需要探讨的地方,其作用只是按照用户的需求格式化打印出日期,例如:
mysql>?SELECT?DATE_FORMAT(NOW(),’%Y%m%d’) AS datetime;+———-+
| datetime |
+———-+
|?20110204?|
+———-+
1?row in?set?(0.00?sec)
但是开发人员往往会错误地使用这个函数,导致非常严重的后果。例如在需要查询某一天的数据时,有些开发人员会写如下的语句:
SELECT * FROM table WHERE DATE_FORMAT(date,’%Y%m%d’)=’xxxx-xx-xx’;
一般来说表中都会有一个对日期类型的索引,如果使用上述的语句,优化器绝对不会使用索引,也不可能通过索引来查询数据,因此上述查询的执行效率可能非常低。
1 楼 hunan84229247 2013-10-08

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



MySQL is an open source relational database management system. 1) Create database and tables: Use the CREATEDATABASE and CREATETABLE commands. 2) Basic operations: INSERT, UPDATE, DELETE and SELECT. 3) Advanced operations: JOIN, subquery and transaction processing. 4) Debugging skills: Check syntax, data type and permissions. 5) Optimization suggestions: Use indexes, avoid SELECT* and use transactions.

You can open phpMyAdmin through the following steps: 1. Log in to the website control panel; 2. Find and click the phpMyAdmin icon; 3. Enter MySQL credentials; 4. Click "Login".

MySQL is an open source relational database management system, mainly used to store and retrieve data quickly and reliably. Its working principle includes client requests, query resolution, execution of queries and return results. Examples of usage include creating tables, inserting and querying data, and advanced features such as JOIN operations. Common errors involve SQL syntax, data types, and permissions, and optimization suggestions include the use of indexes, optimized queries, and partitioning of tables.

Redis uses a single threaded architecture to provide high performance, simplicity, and consistency. It utilizes I/O multiplexing, event loops, non-blocking I/O, and shared memory to improve concurrency, but with limitations of concurrency limitations, single point of failure, and unsuitable for write-intensive workloads.

MySQL is chosen for its performance, reliability, ease of use, and community support. 1.MySQL provides efficient data storage and retrieval functions, supporting multiple data types and advanced query operations. 2. Adopt client-server architecture and multiple storage engines to support transaction and query optimization. 3. Easy to use, supports a variety of operating systems and programming languages. 4. Have strong community support and provide rich resources and solutions.

MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

MySQL and SQL are essential skills for developers. 1.MySQL is an open source relational database management system, and SQL is the standard language used to manage and operate databases. 2.MySQL supports multiple storage engines through efficient data storage and retrieval functions, and SQL completes complex data operations through simple statements. 3. Examples of usage include basic queries and advanced queries, such as filtering and sorting by condition. 4. Common errors include syntax errors and performance issues, which can be optimized by checking SQL statements and using EXPLAIN commands. 5. Performance optimization techniques include using indexes, avoiding full table scanning, optimizing JOIN operations and improving code readability.

Effective monitoring of Redis databases is critical to maintaining optimal performance, identifying potential bottlenecks, and ensuring overall system reliability. Redis Exporter Service is a powerful utility designed to monitor Redis databases using Prometheus. This tutorial will guide you through the complete setup and configuration of Redis Exporter Service, ensuring you seamlessly build monitoring solutions. By studying this tutorial, you will achieve fully operational monitoring settings
