73 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			73 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: SQL Date Functions | |||
|  | localeTitle: Функции даты SQL | |||
|  | --- | |||
|  | ## Функции даты SQL
 | |||
|  | 
 | |||
|  | ### Введение
 | |||
|  | 
 | |||
|  | В MySQL определено 61 функция даты. Не волнуйтесь, мы не рассмотрим их все здесь. Это руководство даст вам введение в некоторые из общих, и достаточно воздействия для вас, чтобы удобно исследовать самостоятельно. | |||
|  | 
 | |||
|  | Мы рассмотрим: | |||
|  | 
 | |||
|  | *   Получение текущей даты | |||
|  | *   Дата Математика | |||
|  | *   Даты в той или иной ситуации | |||
|  | 
 | |||
|  | ### Получение текущей даты
 | |||
|  | 
 | |||
|  | Получение даты из системы может быть очень удобным для обработки данных с использованием SQL. | |||
|  | 
 | |||
|  | ```sql | |||
|  | -- current date  | |||
|  |  select now(), sysdate(), current_date(), current_time(), -- date and time from the system on execution  | |||
|  |  dayofyear(now()) as NumDaysSoFarThisYr,  | |||
|  |  EXTRACT(YEAR FROM now()) as theYearPart,  | |||
|  |  EXTRACT(YEAR_MONTH FROM now()) as theYrMonPart,  | |||
|  |  date_format(now(), '%W %M %Y') as oneOfManyFormats;  | |||
|  |  ;  | |||
|  | ``` | |||
|  | 
 | |||
|  |  | |||
|  | 
 | |||
|  | В SQL-запросе мы видим следующее: | |||
|  | 
 | |||
|  | *   Первые два столбца в результате - два способа получить одну и ту же информацию: дату в системе во время выполнения SQL. | |||
|  | *   Следующие два столбца разрезают только даты и время в системной дате. | |||
|  | *   Следующий номер представляет собой «дневной номер» системной даты в этом году. Вы заметите, что это на один день больше, чем математика, показанная в следующем примере. | |||
|  | *   Следующие два выписки только год, а затем и год и месяц | |||
|  | *   Наконец, но не менее важно, есть один пример одного из многих способов форматирования этих дат. | |||
|  | 
 | |||
|  | ### Дата Математика
 | |||
|  | 
 | |||
|  | ```sql | |||
|  | select now(), current_date(),  | |||
|  |  datediff(now(),'2017-01-01') as daysThisYear,  | |||
|  |  subdate(current_date(), interval 150 day) as '150DaysAgo',  | |||
|  |  adddate(now(), interval 7 day) as dateInA_Week -- date in a week  | |||
|  |  ;  | |||
|  | ``` | |||
|  | 
 | |||
|  |  | |||
|  | 
 | |||
|  | Здесь мы видим: | |||
|  | 
 | |||
|  | *   Первые два столбца - это только системная дата и время для ссылки. | |||
|  | *   Второй столбец - это разность дат (датированный) между первым января 2017 года и системной датой. | |||
|  | *   Последние два столбца являются примерами вычитания и добавления дат. | |||
|  | 
 | |||
|  | ### В той ситуации, в которой или где
 | |||
|  | 
 | |||
|  | Вот два примера использования математики даты в предложении where: | |||
|  | 
 | |||
|  | ```sql | |||
|  | select * from student; - to show the current data being used for the example  | |||
|  |  select * from student where recordCreated < '2017-01-01';  | |||
|  |  select * from student where recordCreated < subdate(current_date(), interval 225 day);  | |||
|  | ``` | |||
|  | 
 | |||
|  |  | |||
|  | 
 | |||
|  | Что касается части HAVING: Имейте в виду, что большая часть логики предложения WHERE будет также работать в предложении HAVING группы GROUP BY. Разница между ними заключается в том, что предложение WHERE выполняется против полных данных, а HAVING выполняется против данных, агрегированных по условию GROUP BY. | |||
|  | 
 | |||
|  | _Как и во всех этих вещах, им гораздо БОЛЬШЕ, чем тому, что находится в этом вводном руководстве. Надеюсь, это, по крайней мере, даст вам достаточно, чтобы начать. Пожалуйста, ознакомьтесь с руководством для своего менеджера баз данных и получайте удовольствие от различных вариантов._ |