Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Работа с дати и часове
  1. Работа с дати и часове
Mutatos
     
Автор  Mutatos (15.01.2006 15:26)  съобщение до автора
Погледнат  5278 пъти  добави към любими
Оценка  добави коментар
Гласове  4  изпрати на приятел
Коментари  (0)  абонирай се за MySQL
    Страница 1 / 1

 



Доста често се среща необходимостта за работа с дати и часове под MySQL. Самата база за данни предлага много полезни функции, които са лесни за използване и улесняват много един програмист. Преди да започнем да разглеждаме по отделно функците нека, да разгледаме като начало типовете на полетата, свързани с датите и часове в MySQL!

DATETIME-, DATE- и TIMESTAMP

  • DATETIME - е един от най-използваните типове за поле, свързано с дати и часове. Този тип се използва, ако искате да запаметявате както датата, така и часа. Формата на типа е следния: 'YYYY-MM-DD HH:MM:SS'. Границите на този тип са: от 1000-01-01 00:00:00 до 9999-12-31 23:59:59.

  • DATE - е тип на поле, който дава информация само за датата, без необходимия час. Форматът на този тип е : 'YYYY-MM-DD'. Съответните граници са: от 1000-01-01 до 9999-12-31.

  • TIMESTAMP - се използва ако искате при INSERT или UPDATE да запаметите, кога точно се е извършила операцията, тъй като запълването на полето със съответната дата е възможно да стане автоматично, без да извършвате допълнителна работа. Полето от този тип може да има следната информация:

    TIMESTAMP(14) YYYYMMDDHHMMSS
    TIMESTAMP(12) YYMMDDHHMMSS
    TIMESTAMP(10) YYMMDDHHMM
    TIMESTAMP(8) YYYYMMDD
    TIMESTAMP(6) YYMMDD
    TIMESTAMP(4) YYMM
    TIMESTAMP(2) YY



Функции в MySQL

След като вече разгледахме отделните типове на полетата, нека да разгледаме различните функции предложени от MySQL за работа с дати и часове.

CURDATE() / CURRENT_DATE()

Тази функция връща днешната дата във формат YYYY-MM-DD

CODE
1
2
3
4
5
6
7
SELECT CURDATE();

+------------+
|
CURDATE()  |
+------------+
|
2005-10-23 |
+------------+

При въвеждане на следното:

CODE
1
SELECT CURDATE()-0;

получавате днешната дата във формат : YYYYMMDD



CURTIME() / CURRENT_TIME()

Тази функция дава информация за часа: 'HH:MM:SS'

CODE
1
2
3
4
5
6
7
SELECT CURTIME();

+-----------+
|
CURTIME() |
+-----------+
|
11:48:05  |
+-----------+


NOW() / CURRENT_TIMESTAMP()

Тази функция дава информация за днешната дата и точния час: YYYY-MM-DD HH:MM:SS


CODE
1
2
3
4
5
6
7
SELECT NOW();

+---------------------+
|
NOW()               |
+---------------------+
|
2005-10-23 11:41:38 |
+---------------------+

Съответно

CODE
1
SELECT NOW() -0;

връща информацията в следния формат: YYYYMMDDHHMMSS.


До тук разгледахме основните функции на MySQL, който извеждат актуалните дати и часове. Сега ще разгледаме функции, които извършват операции с горепосочените основни функции.

Функции за операции с дати и часове

DATE(expr);

Тази функция екстрахира от дадена дата в различен формат само датата във формат: YYYY-MM-DD

CODE
1
2
mysql> SELECT DATE('2005-10-23 11:02:03');
            ->
'2005-10-23'


DATEDIFF(expr,expr2)

Тази функция връща разликата в дни между две дати:

CODE
1
2
mysql> SELECT DATEDIFF('2005-10-23 23:59:59','2005-10-22');
            ->
1

Тази функция е въведена във версия 4.1.1. на MySQL.



DATE_ADD(date,INTERVAL expr type) / DATE_SUB(date,INTERVAL expr type)

Тези две функции се използват ако искате да определите дадена дата на базата на друга дата. Като пример нека да изведем датата преди 24 дена:

CODE
1
2
mysql> select DATE_SUB('2005-10-23', INTERVAL 24 DAY);
           ->
2005-09-29

или да намерим датата след 24 дена:

CODE
1
2
mysql> select DATE_ADD('2005-10-23', INTERVAL 24 DAY);
           ->
2005-11-16

Възможните типове за интервала може да погледнете в документацията на MySQL, но най често използваните са:

MICROSECOND , SECOND , MINUTE , HOUR , DAY , WEEK , MONTH , QUARTER ,YEAR


DATE_FORMAT(date,format)

Тази функция се използва за форматиране на зададена дата

CODE
1
2
mysql> SELECT DATE_FORMAT('2005-10-23 11:23:00', '%Y-%m-%d');
           ->
2005-10-23

Т.е вие имате възможност да изведете датата в такъв формат, какъвто ви е необходим.


Смятам, че тези функции са едни от най-важните и най-често използваните при работа с MySQL. Разбира се това не са единствените функции, а една малка част от предлаганите функции за работа с дати и часве. Който има желание може да погледне в документацията на MySQL и да научи повече за другите функции!

http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html



   


Ключови думи: MySQL таблица заявка SQL програмиране запитване код index индекс TIMESTAMP CURDATE CURTIME NOW DATE_ADD DATETIME база данни


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: Mutatos  
Николай Николов се занимава с програмиране на PHP/MySQL повече от 6 години. Заедно с разработката на уеб приложения на PHP, се занимава с Java, XML и Webservices.
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008