кодесурса
«MYSQL

MySQL Date вычисление

script1adsense2code
script1adsense3code

Расчет даты

На этой странице мы показали расширенный расчет даты MySQL с использованием следующих функций:

Функция CURDATE (), которая возвращает текущую дату компьютера, функция YEAR (), которая возвращает год указанной даты, функция MONTH (), которая возвращает месяц указанной даты, функция DAY (), которая возвращает день указанной даты. date, функция RIGHT (), которая возвращает количество символов, указанное в функции из заданной строки или даты. Часть выражения, которая сравнивает результаты от функции RIGHT (), оценивает 1 или 0.

Пример:

Пример таблицы: издатель


Код:

SELECT pub_name, estd, CURDATE(),
YEAR(estd),MONTH(estd),   
DAY(estd),(RIGHT(CURDATE(),5)<RIGHT(estd,5)) AS ‘return’
FROM publisher;

объяснение

Приведенный выше оператор MySQL возвращает имя издателя, дату создания, текущую дату, год создания, месяц создания, день создания и столбец возврата, который рассчитывается с помощью RIGHT ().

Пример вывода:

 mysql> SELECT pub_name, estd, CURDATE (),
    -> ГОД (ESTD), МЕСЯЦ (ESTD),   
    -> ДЕНЬ (estd), (ПРАВО (CURDATE (), 5) <ПРАВО (estd, 5)) КАК «возврат»
    -> ОТ издателя;
+ ------------------------------ + ------------ + ----- ------- + ------------ + ------------- + ----------- + --- ----- +
| pub_name | есть | КУРДАТА () | ГОД (ESTD) | МЕСЯЦ (ESTD) | ДЕНЬ (ESTD) | возврат |
+ ------------------------------ + ------------ + ----- ------- + ------------ + ------------- + ----------- + --- ----- +
| Публикация Jex Max | 1969-12-25 | 2015-04-04 | 1969 | 12 | 25 | 1 | 
| Публикация БПП | 1985-10-01 | 2015-04-04 | 1985 | 10 | 1 | 1 | 
| Нью Гарролд Публикация | 1975-09-05 | 2015-04-04 | 1975 | 9 | 5 | 1 | 
| Ультра Пресс Инк | 1948-07-10 | 2015-04-04 | 1948 | 7 | 10 | 1 | 
| Горная публикация | 1975-01-01 | 2015-04-04 | 1975 | 1 | 1 | 0 | 
| Летняя ночь Публикация | 1990-12-10 | 2015-04-04 | 1990 | 12 | 10 | 1 | 
| Pieterson Grp. издателей | 1950-07-15 | 2015-04-04 | 1950 | 7 | 15 | 1 | 
| Роман Издатель ООО | 2000-01-01 | 2015-04-04 | 2000 | 1 | 1 | 0 | 
+ ------------------------------ + ------------ + ----- ------- + ------------ + ------------- + ----------- + --- ----- +
8 рядов в наборе (0,00 сек)

Примечание . Поскольку используется функция CURDATE (), ваш вывод может отличаться от показанного.

PHP скрипт

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>example-date-calculation - php mysql examples | w3resource</title>
<meta name="description" content="example-date-calculation - php mysql examples | w3resource">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>List of publishers with date , year and month of establishment of the concerned publishing house, current date and
and value against the expression  RIGHT(CURDATE(),5) < RIGHT(estd,5) as 'return':</h2>
<table class='table table-bordered'>
<tr>
<th>Publisher's name</th><th>Date of establishment</th><th>Current date</th><th>Year of establishment</th><th>Month of establishment</th><th>Day of establishment</th><th>return</th>
</tr>
<?php
$hostname="your_hostname";
$username="your_username";
$password="your_password";
$db = "your_dbname";
$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
foreach($dbh->query('SELECT pub_name, estd, CURDATE(),YEAR(estd),MONTH(estd),DAY(estd),(RIGHT(CURDATE(),5)<RIGHT(estd,5))
AS "return" FROM publisher') as $row) {
echo "<tr>";
echo "<td>" . $row['pub_name'] . "</td>";
echo "<td>" . $row['estd'] . "</td>";
echo "<td>" . $row['CURDATE()'] . "</td>";
echo "<td>" . $row['YEAR(estd)'] . "</td>";
echo "<td>" . $row['MONTH(estd)'] . "</td>";
echo "<td>" . $row['DAY(estd)'] . "</td>";
echo "<td>" . $row['return'] . "</td>";
echo "<td>" . $row['return'] . "</td>";
echo "</tr>";
}
?>
</tbody></table>
</div>
</div>
</div>
</body>
</html>

Посмотреть пример в браузере

MySQL Date вычитание

Вычитание даты

Далее мы обсудили расширенное вычитание даты в MySQL с использованием функций CURDATE (), YEAR () и RIGHT ().

Пример:

Пример таблицы: издатель


Код:

SELECT pub_name, estd,CURDATE(),       
(YEAR(CURDATE())-YEAR(estd)) - 
(RIGHT(CURDATE(),5)<RIGHT(estd,5))
AS Age FROM publisher;

объяснение

Чтобы вычислить возраст каждого издателя, вычисляется разница дат между текущей датой и датой estd, а затем вычитается 1 (вычисляется как (RIGHT (CURDATE (), 5) <RIGHT (estd, 5))), если текущий месяц и день раньше, чем месяц и день.

Пример вывода:

 mysql> SELECT pub_name, estd, CURDATE (),       
    -> (ГОД (CURDATE ()) - ГОД (estd)) - 
    -> (ПРАВО (CURDATE (), 5) <ПРАВО (estd, 5))
    -> Как возраст от издателя;
+ ------------------------------ + ------------ + ----- ------- + ------ +
| pub_name | есть | КУРДАТА () | Возраст |
+ ------------------------------ + ------------ + ----- ------- + ------ +
| Публикация Jex Max | 1969-12-25 | 2015-04-01 | 45 | 
| Публикация БПП | 1985-10-01 | 2015-04-01 | 29 | 
| Нью Гарролд Публикация | 1975-09-05 | 2015-04-01 | 39 | 
| Ультра Пресс Инк | 1948-07-10 | 2015-04-01 | 66 | 
| Горная публикация | 1975-01-01 | 2015-04-01 | 40 | 
| Летняя ночь Публикация | 1990-12-10 | 2015-04-01 | 24 | 
| Pieterson Grp. издателей | 1950-07-15 | 2015-04-01 | 64 | 
| Роман Издатель ООО | 2000-01-01 | 2015-04-01 | 15 | 
+ ------------------------------ + ------------ + ----- ------- + ------ +
8 рядов в наборе (0,00 сек)

Примечание. Поскольку текущая дата является одним из аспектов получения выходных данных, ваши выходные данные и выходные данные из сценария PHP будут отличаться от указанных выше.

PHP скрипт

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>example-date-subtraction - php mysql examples | w3resource</title>
<meta name="description" content="example-date-subtraction - php mysql examples | w3resource">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>List of publishers with date of establishment, current date of establishment and how old their publishing houses are:</h2>
<table class='table table-bordered'>
<tr> 
<th>Publisher's name</th><th>Date of establishment</th><th>Current date</th><th>AGE</th>
</tr>
<?php
$hostname="your_hostname";
$username="your_username";
$password="your_password";
$db = "your_dbname";
$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
foreach($dbh->query('SELECT pub_name, estd, CURDATE(),(YEAR(CURDATE())-YEAR(estd)) - (RIGHT(CURDATE(),5)<RIGHT(estd,5))
AS Age FROM publisher') as $row) {
echo "<tr>";
echo "<td>" . $row['pub_name'] . "</td>";
echo "<td>" . $row['estd'] . "</td>";
echo "<td>" . $row['CURDATE()'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "</tr>";
}
?>
</tbody></table>
</div>
</div>
</div>
</body>
</html>

Посмотреть пример в браузере

Расчет даты в MySQL с помощью mod ()

Расчет даты с модом ()

Далее мы обсудили, как использовать функцию MySQL MOD () для вычисления даты.

Пример:

Пример таблицы: издатель


Код:

SELECT pub_name,estd 
FROM publisher         
WHERE MONTH(estd) = MOD(MONTH(CURDATE()),12)+8; 

объяснение

Функция MOD () возвращает модули из подразделения.

Вышеприведенный оператор MySQL возвращает pub_name и estd тех издателей, чей месяц создания равен сложению 8 и модулю части месяца текущей даты, деленной на 12.

Пример вывода:

 mysql> ВЫБЕРИТЕ pub_name, estd 
    -> ОТ издателя         
    -> ГДЕ МЕСЯЦ (estd) = MOD (МЕСЯЦ (КУРДАТА ()), 12) +8;
+ -------------------------- + ------------ +
| pub_name | есть |
+ -------------------------- + ------------ +
| Публикация Jex Max | 1969-12-25 | 
| Летняя ночь Публикация | 1990-12-10 | 
+ -------------------------- + ------------ +
2 ряда в наборе (0,00 сек)

Примечание. Поскольку текущая дата является одним из аспектов достижения результата, ваш вывод и вывод из сценария PHP могут отличаться от приведенных выше. Измените текущую дату на подходящую дату (например, до августа 2010 года), чтобы получить выходные данные.

PHP скрипт

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>example-mod - php mysql example | w3resource</title>
<meta name="description" content="example-mod - php mysql example | w3resource">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>List of publishers with their date of establishment, where their respective month of establishment equals,
addition of one to the reminder of the current month divided by twelve:</h2>
<table class='table table-bordered'>
<tr>
<th>Publisher's name</th><th>Date of establishment</th>
</tr>
<?php
$hostname="your_hostname";
$username="your_username";
$password="your_password";
$db = "your_dbname";
$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
foreach($dbh->query('SELECT pub_name,estd FROM publisher WHERE MONTH(estd) = MOD(MONTH(CURDATE()),12)+8') as $row) {
echo "<tr>";
echo "<td>" . $row['pub_name'] . "</td>";
echo "<td>" . $row['estd'] . "</td>";
echo "</tr>";
}
?>
</tbody></table>
</div>
</div>
</div>
</body>
</html>

Посмотреть пример в браузере

Примечание. Оператор select может возвращать ноль строк. Это только потому, что данные, доступные в таблице, в которой выполняется запрос, не имеют даты относительно текущей даты. В противном случае запрос является технически правильным.

Предыдущий: строки, содержащие максимум группы для столбца
Далее: Расчет даты по заказу

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code