Как превратить дату в SQL в текст с помощью ЗЕЬЕСТА?

голоса
2

Я продолжаю находить комплексные решения «подобные» вопросы, но то, что я нуждаясь я думаю, что гораздо проще.

У меня есть таблица, которая имеет «Победитель» в нем. Имя, адрес и т.д. ... и самое главное, на дату, когда они выиграли. Затем я хочу, чтобы отобразить это на веб-сайте.

SELECT FirstName, LastName, Prize, Winning_Date FROM Prize_Table
ORDER BY Winning_Date DESC

Теперь Winning_Dateстолбец типа данных date.

Так вот мой вопрос.

Если дата 2012-01-01, я хочу , чтобы иметь возможность отображать только месяц, и год ... в обычном тексте.

например:

January, 2012

Было бы также неплохо иметь возможность размещать только месяц аббревиатуры (Jan) и год, в двух разных местах в пределах пролетных тегов. Любопытный, как вы видите эти маленькие иконки календаря с месяцем, и годом ... и / или датой и т.д.

JAN

2012

Я хочу, чтобы убедиться, что я сохраняю возможность заказать по дате, а также ... месяц, год хорошо.

Спасибо за помощь.

Задан 28/08/2012 в 13:46
пользователем
На других языках...                            


6 ответов

голоса
2

Вы можете сделать это следующим образом:

SELECT FirstName,
       LastName,
       Prize,
       datename(mm, Winning_Date) + ', ' + datename(yyyy, Winning_Date) AS 
FROM Prize_Table
ORDER BY Winning_Date DESC
Ответил 28/08/2012 в 13:49
источник пользователем

голоса
0

Попробуй это:

SELECT FirstName, LastName, Prize, (DATENAME(month, Winning_Date) + ',' + DATENAME(year, Winning_Date)) AS "MonthYear"  FROM Prize_Table
ORDER BY Winning_Date DESC
Ответил 28/08/2012 в 13:52
источник пользователем

голоса
0

Функция Convert будет отображать данные в виде текста.

См http://msdn.microsoft.com/en-us/library/ms187928.aspx

Вы можете Google, чтобы найти функции форматирования даты или написать его с помощью замены (), и т.д ..

В MSSQL Вы можете: заказать что - то , что не в наборе результатов.
Не все СУБД имеют такую возможность.

Ответил 28/08/2012 в 13:53
источник пользователем

голоса
0

Попробуйте DATENAME()функцию.

Это будет захватывать название месяца и год в виде строки. Таким образом, ваш оператор выбора может быть изменен, чтобы быть похожим на:

SELECT 
    FirstName, 
    LastName, 
    Prize, 
    DATENAME(month, Winning_Date) + ', ' +  DATENAME(year, Winning_Date)
FROM Prize_Table
ORDER BY 
    Winning_Date DESC

Заказ должен работать.

Ответил 28/08/2012 в 13:53
источник пользователем

голоса
0

Вот запрос:

SELECT FirstName, LastName, Prize, DATENAME(MM, Winning_Date) + ', ' + CAST(YEAR(Winning_Date)     AS VARCHAR(4)) AS [Winning_Date] FROM Prize_Table 
ORDER BY DATEPART(month,Winning_Date) DESC , DATEPART(year,Winning_Date) DESC
Ответил 28/08/2012 в 13:54
источник пользователем

голоса
0

Это действительно зависит от вашего SQL-ароматизатора (например, MySQL, T-SQL).

В MySQL вы могли бы сделать что-то вроде этого.

Select concat(winner, concat(' ', date_format(Winning_date, '%m%d%Y')))

В T-SQL (используется в сервере MSSQL), вы можете использовать

select winner + ' ' + CONVERT(VARCHAR, Winning_date, 120)

число в вызове новообращенной-функции представляет собой формат дата конвертируется.

Смотрите здесь другие примеры по формату.

Ааа. Я не видел тег для SQLServer 2008. Я оставляю это здесь для других, жесткие.

Ответил 28/08/2012 в 13:55
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more