Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Формат даты  [new]
bamper78
Member

Откуда:
Сообщений: 122
Добрый день. Подскажите пожалуйста как вывести из поля дата(год, месяц, день, время) только год и месяц. Спасибо
12 янв 12, 19:42    [11895219]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
datepart()
12 янв 12, 19:43    [11895229]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
Genniy
Member

Откуда:
Сообщений: 141
bamper78,
select convert(char(8), getDate(), 102)
12 янв 12, 20:57    [11895564]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
ZOOKABAKODER
Member

Откуда:
Сообщений: 178
Нашёл в стане врага. :) На SQL 8 я проверял, то, что там написано работало быстрее всего. На 9 и 10 SQL не смотрел. Вообще COMPUTE SCALAR как правило намного намного быстрее остальных операторов запроса, чтоб заморачиваться на эту тему. BOL, в своё время рекомендовал через CONVERT всё делать, сейчас правда я там этого не нашёл мож терь не важн.
12 янв 12, 22:06    [11895871]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
bamper78
Member

Откуда:
Сообщений: 122
datepart () выводит только один параметр времени (год или месяц или день... ) если я правильно понял синтаксис этой функции, а мне требуется вывести одновременно год и месяц
12 янв 12, 23:22    [11896194]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
bamper78, а конкатенация двух datepart() выдаст то, что вам надо.
12 янв 12, 23:39    [11896237]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты  [new]
ZOOKABAKODER
Member

Откуда:
Сообщений: 178
bamper78
datepart () выводит только один параметр времени (год или месяц или день... ) если я правильно понял синтаксис этой функции, а мне требуется вывести одновременно год и месяц

До SLQ10:
DECLARE @d DATETIME, @Today DATETIME

SET @Today = CAST(SUBSTRING(CAST(GETDATE() AS BINARY(8)),1,4) + 0x00000000 AS DATETIME) -- О да! И работало быстрее DATEADD и CAST!
SET @d = DATEADD(dd, 1 - DATEPART(dd, @Today), @Today) -- или: @Today + 1 - DATEPART(dd, @Today)

SELECT [Year+Month] = @d, [Today] = @Today

Начиная с SQL10:
DECLARE @d DATE, @Today DATE

SET @Today = SYSDATETIME() -- SYSDATETIME() это пряморукий аналог GETDATE()
SET @d = DATEADD(dd, 1 - DATEPART(dd, @Today), @Today)

SELECT [Year+Month] = @d, [Today] = @Today
13 янв 12, 01:01    [11896387]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить