як витягти лише рік із дати в SQL Server 2008?


Відповіді:


118
year(@date)
year(getdate())
year('20120101')

update table
set column = year(date_column)
whre ....

або якщо вам це потрібно в іншій таблиці

 update t
   set column = year(t1.date_column)
     from table_source t1
     join table_target t on (join condition)
    where ....

Тут я не хочу для поточного часу. У мене вже є стовпець із датою та часом. Як отримати запит, щоб витягти це?
Praveen

Це працює; як я можу зберегти цей рік в іншому стовпці таблиці? Краще мати однорядковий запит.
Правен

Чи можете ви пояснити таку помилку: Помилка арифметичного переповнення, перетворюючи вираз у тип даних datetime.
Praveen

Думаю, ви намагаєтесь надати рядок на побачення. І сервер не може перетворити його на тип datetime, оскільки він не підтримує формат.
Думітреску Богдан


12

Ви можете використовувати year()функцію в sql, щоб отримати рік із зазначеної дати.

Синтаксис:

YEAR ( date )

Для отримання додаткової інформації перегляньте тут


Помилка арифметичного переповнення, перетворюючи вираз у тип даних datetime. Не можу зрозуміти, що це? Це помилка, яку я отримав?
Правен

отримав, це було призначено як int.
Praveen

5
year(table_column)

Приклад:

select * from mytable where year(transaction_day)='2013' 

4

Сценарій SQL Server

declare @iDate datetime
set @iDate=GETDATE()

print year(@iDate) -- for Year

print month(@iDate) -- for Month

print day(@iDate) -- for Day

1

річна доза функції, наприклад:

select year(date_column) from table_name


2
Уже є відповіді, яким це сказано, старше 6 років (з більш детальною інформацією). Відповідаючи на старі запитання, переконайтеся, що ваша відповідь пропонує суттєво іншу або якіснішу відповідь, ніж існуючі відповіді.
Марк Роттевіл

0

DATEPART (рррр, date_column) можна використовувати для вилучення року. Загалом, функція DATEPART використовується для вилучення певних порцій значення дати.


0
---Lalmuni Demos---
create table Users
(
userid int,date_of_birth date
)
insert into Users values(4,'9/10/1991')

select DATEDIFF(year,date_of_birth, getdate()) - (CASE WHEN (DATEADD(year, DATEDIFF(year,date_of_birth, getdate()),date_of_birth)) > getdate() THEN 1 ELSE 0 END) as Years, 
MONTH(getdate() - (DATEADD(year, DATEDIFF(year, date_of_birth, getdate()), date_of_birth))) - 1 as Months, 
DAY(getdate() - (DATEADD(year, DATEDIFF(year,date_of_birth, getdate()), date_of_birth))) - 1 as Days,
from users

0

Просто використовуйте

ВИБЕРІТЬ ДАТУ ДАТИ (РІК, ДеякіДатаСтовпець)

Він поверне частину типу DATETIME, яка відповідає вказаному параметру. ТАК DATEPART (YEAR, GETDATE ()) поверне поточний рік.

Може передавати інші форматори часу замість YEAR like

  • ДЕНЬ
  • МІСЯЦ
  • ДРУГИЙ
  • МІЛІСЕКУНД
  • ... тощо.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.