Рейтинг:
1
Maciej Los
В дополнение к решению №1 по Корнфельд Элиягу Петер[^]...
Если месяц всегда находится в начале строки-даты, я бы предложил создать вспомогательную таблицу. Видеть:
DECLARE @tmp TABLE(Mnth INT IDENTITY(1,1), MnthName VARCHAR(30))
INSERT INTO @tmp (MnthName)
VALUES('January'), ('February'), ('March') --and so on...
DECLARE @stringDates TABLE(stringDate VARCHAR(30))
INSERT INTO @stringDates (stringDate)
VALUES('March-04-2008'), ('February-28-2008'), ('January-14-2008')
SELECT s.stringDate AS OriginalDate, m.Mnth
FROM @tmp AS m INNER JOIN @stringDates AS s ON m.MnthName = LEFT(stringDate, CHARINDEX('-',stringDate)-1)
Последнее замечание: никогда не храните даты в виде строки! Свидание есть свидание и ничего больше!
John Th
Тогда какой тип данных я должен использовать?
Richard Deeming
На самом деле, поскольку здесь нет никакой временной части, date
это был бы лучший выбор.
Если бы речь шла о времени, datetime2
было бы лучше, чем datetime
- он имеет больший диапазон, большую дробную точность по умолчанию и дополнительную точность, заданную пользователем.
John Th
Я хочу сохранить дату как; март-04-2018. Какой тип данных я должен использовать? Помогите мне, пожалуйста.
Maciej Los
Ошибаешься! Используйте дату, а не ее строковое представление!
Преобразование между типами данных является утомительным и может привести к потере эффективности.
John Th
Окей. Тогда как же я могу получить значение месяца в datetime?
Maciej Los
Month(ProperDateTime)
возвращает 3 за март
Если вы хотите отобразить март из DateTime, используйте Функция DateName
;)
John Th
Я хочу узнать номер месяца. Например: март, возвращаемое значение равно 03.
Maciej Los
DECLARE @dt DATETIME = GETDATE()
SELECT RIGHT('00' + CONVERT(VARCHAR(2), DATEPART(MM, @dt)), 2) AS MyMonth
--or
SELECT RIGHT('00' + CONVERT(VARCHAR(2), MONTH(@dt)), 2) AS MyMonth
John Th
Как же так? @losmac
John Th
Как это исправить?
Выберите stock_id, stock_qty, справа('00' + конвертировать(VARCHAR(2), месяц(stock_date)), 2) из tblstocks, где stock_date = '03';
Maciej Los
Исправить что?
Примечание: Я не вижу вашего экрана и не имею доступа к вашему жесткому диску. И я даже не могу читать в твоих мыслях...
John Th
Я все исправил. https://ibb.co/dmpHEc
John Th
Можно ли преобразовать его в мммм-ДД-гггг? 19 марта-2018 года будет возвращение.
try6 — imgbb.com[^]