Показать месяц полной даты в SQL - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть столбец в моей базе данных с полными датами: (0000-00-00) Мне нужно показать эту дату в виде строки месяца (например, январь).

У меня слишком большой выборМой SQL-запрос здесь:

1 создает случай, когда месяц равен '01' = 'январь' (который, я считаю, является наилучшим вариантом, поскольку я мог бы затем изменить строку так, как я хочу (на португальском языке с первымнапример, заглавная буква.) Я не смог этого сделать, попробовал подстроку, но даты не похожи на операторы подстрок.

2 просто показывают эту дату как месяц:

MONTH(DT_CANCEL)

Тем не менее, мне нужно показать строку (январь), а вышеприведенные значения выводят только 01

Как лучше всего (и как) я могу показать полное имя месяца для даты в SQL-запросе?

Использование MySQL.

Ответы [ 5 ]

0 голосов
/ 05 декабря 2018

mysql:

select date_format('2018-12-01','%M'); /* prints December*/

select date_format('2018-12-01','%b'); /* prints Dec*/
0 голосов
/ 05 декабря 2018

В MySQL вы можете использовать имя месяца

SELECT MONTHNAME(DT_CANCEL) from your_table;
0 голосов
/ 05 декабря 2018

Если вы используете MS SQL Server, вам не нужно писать оператор Case, попробуйте ниже:

SET LANGUAGE Portuguese

SELECT UPPER(LEFT(DATENAME(month, getdate()),1))+LOWER(SUBSTRING(DATENAME(month, 
getdate()),2,LEN(DATENAME(month, getdate())))) 

Если вы хотите сбросить язык для вашего сервера, вы можете увидеть списокпсевдонимы, запустив скрипт ниже:

SELECT * FROM sys.syslanguages
0 голосов
/ 05 декабря 2018

Вы можете просто использовать MonthName:

SELECT MONTHNAME('2009-05-18');

Это будет выводить май.

Ссылка здесь: https://www.w3resource.com/mysql/date-and-time-functions/mysql-monthname-function.php

0 голосов
/ 05 декабря 2018

В Oracle используйте TO_CHAR:

select TO_CHAR(SYSDATE, 'Month') FROM dual;

December 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...