powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разделение по месяцу
15 сообщений из 15, страница 1 из 1
Разделение по месяцу
    #40098586
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, у меня есть таблица [dbo].[БД$] у нее есть столбец [Дата] мне нужно разделить дату на месяцы, и на дни месяца.

Тип столбца [Дата] = datetime,NULL (2017-07-14 00:00:00.000)

Я написал такой запрос:

Код: sql
1.
2.
3.
4.
SELECT *
	,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 1, 4) AS [ГОД]
	,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 7, 8) AS [МЕС]
FROM [dbo].[БД$]


[ГОД] он выдает корректно, а вот [МЕС] почему то некорректно. На выходе должно было получиться "7" но выдает "7-14 00" часть времени цепляет. Можете подсказать в чем проблема.
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098589
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ablaykhan,

Код: sql
1.
2.
3.
4.
5.
SELECT *
	,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 1, 4) AS [ГОД]
	,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 7, 1) AS [МЕС]
	,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 9, 3) AS [ДЕНЬМЕС]
FROM [dbo].[БД$]



Вопрос закрыт
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098626
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ablaykhan,

откройте для себя функцию datepart

Код: sql
1.
2.
3.
4.
declare @dt datetime = getdate()
select datepart(yy,@dt) [Year]
         ,datepart(mm,@dt) [Month]
	,datepart(dd,@dt) [Day]
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098631
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,

спасибо, хорошо
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098649
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ablaykhan,

,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 7, 1) AS [МЕС]

а как же октябрь, ноябрь и декабрь? deprecated? и вместо них будут два января и два февраля и один непонятный с номером 0. январские каникулы видимо..
или "выборка не подразумевает наличия такой информации"
а еще "задача не ставилась"
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098659
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShIgor,

Вы кажется не поняли задачу.
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098669
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ablaykhan
ShIgor,

Вы кажется не поняли задачу.
Я тоже не понял: что вы будете делать с полученным результатом?
Просто где-то выводить? Или, например, группировать (GROUP BY)?
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098703
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ablaykhan,

Да, согласен, я не понимаю Вашу задачу.
На какое количество месяцев и на какое количество дней в каком месяце необходимо разделить дату. (это сарказм)

а вот Ваше же решение можно применить только в случае если месяц в дате меньше 10, в противном, результат будет не равен номеру месяца. Да и Дата будет "хватать" лишний пробел.
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098835
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShIgor,

Кстати да, я вот только заметил. А как написать запрос так чтобы он брал все 12 месяцев?
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098839
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,

Это базовые столбцы для daily отчетов.
Я тут заметил что мой запрос выводит результат неправильно. Как выше писали мой запрос берет лишь до 10 месяцев. А именно где должно выводиться 10 он выводит 0 а там где 11 он выводит 1 а там где 12 выводит 2. Как можно решить эту проблему? Спасибо за ответ.
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098843
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ablaykhan
Как можно решить эту проблему? Спасибо за ответ.


Варианты
1. Подучиться.
2. Подумать.
3. Почитать ответы умных людей.

komrad
Ablaykhan,

откройте для себя функцию datepart

Код: sql
1.
2.
3.
4.
declare @dt datetime = getdate()
select datepart(yy,@dt) [Year]
         ,datepart(mm,@dt) [Month]
	,datepart(dd,@dt) [Day]

...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098844
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

SELECT *
,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 1, 4) AS [ГОД]
,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 6, 2) AS [МЕС]
,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 9, 3) AS [ДЕНЬМЕС]
FROM [dbo].[БД$]
Я поменял лимит на 6,2 выводит все корректно.
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098846
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ablaykhan
aleks222,

Код: sql
1.
2.
3.
4.
5.
SELECT *
	,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 1, 4) AS [ГОД]
	,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 6, 2) AS [МЕС]
	,SUBSTRING((CONVERT(VARCHAR, [Дата], 120)), 9, 3) AS [ДЕНЬМЕС]
FROM [dbo].[БД$] 


Я поменял лимит на 6,2 выводит все корректно.
...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098856
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ablaykhan,
Наверное смысла нет, в 3й раз повторять.
ТС ответов не читает.
Но попробую)))
aleks222
Ablaykhan
Как можно решить эту проблему? Спасибо за ответ.


Варианты
1. Подучиться.
2. Подумать.
3. Почитать ответы умных людей.

komrad
Ablaykhan,

откройте для себя функцию datepart

Код: sql
1.
2.
3.
4.
declare @dt datetime = getdate()
select datepart(yy,@dt) [Year]
         ,datepart(mm,@dt) [Month]
	,datepart(dd,@dt) [Day]

...
Рейтинг: 0 / 0
Разделение по месяцу
    #40098885
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdor
Ablaykhan,
Наверное смысла нет, в 3й раз повторять.
ТС ответов не читает.
Но попробую)))
aleks222
пропущено...


Варианты
1. Подучиться.
2. Подумать.
3. Почитать ответы умных людей.

пропущено...

и есть еще функции
YEAR, MONTH, DAY
Код: sql
1.
2.
3.
4.
declare @dt datetime = getdate()
select   year(@dt) [Year]
		,month(@dt) [Month]
		,day(@dt) [Day]


может быть будет более наглядно автору
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разделение по месяцу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]