如何将日期格式字段转换为MON-YYYY格式。
我的日期是12-06-2014,我想将它与JUN-2014进行比较。
答案 0 :(得分:2)
这是一个解释日期格式的所有内容的链接: Date Format
您的解决方案可能如下(MySQL版本):
UPPER(DATE_FORMAT(yourDate, '%b-%Y'))
对于SQL Server:
UPPER(SUBSTRING(DATENAME(MONTH, yourDate), 1, 3) + '-' + CAST(DATEPART(YEAR, yourDate) AS VARCHAR(4)))
希望这会对你有所帮助
答案 1 :(得分:0)
SQL支持许多不同的日期格式,但不支持基于非数字的日期格式。我强烈建议找到一种方法,使用Microsoft SQL documentation建议的其中一种格式。
或者,如果您绝对有必要使用此格式,则以下代码可以将任何日期格式更改为您请求的格式。
declare @date date = '2014-01-01'
select
case when DATEPART(mm,@date) = 1 then 'JAN'
when DATEPART(mm,@date) = 2 then 'FEB'
when DATEPART(mm,@date) = 3 then 'MAR'
when DATEPART(mm,@date) = 4 then 'APR'
when DATEPART(mm,@date) = 5 then 'MAY'
when DATEPART(mm,@date) = 6 then 'JUN'
when DATEPART(mm,@date) = 7 then 'JUL'
when DATEPART(mm,@date) = 8 then 'AUG'
when DATEPART(mm,@date) = 9 then 'SEP'
when DATEPART(mm,@date) = 10 then 'OCT'
when DATEPART(mm,@date) = 11 then 'NOV'
when DATEPART(mm,@date) = 12 then 'DEC' end
+ '-'
+ CONVERT(char(4),DATEPART(yy,@date)) as new_format
答案 2 :(得分:0)
您可以使用以下内容格式化日期并进行比较(SQL Fiddle):
SELECT *
FROM
(
SELECT
CONCAT(
CONVERT(CHAR(3), CONVERT(DATE, MyDateField, 105), 0),
'-',
DATEPART(YYYY, CONVERT(DATE, MyDateField, 105))
) AS DF
FROM MyTable
) m
WHERE m.DF = 'JUN-2014';
答案 3 :(得分:0)
您可以在下面使用转换日期格式化。
选择左侧(日期名称(mm,[日期]),3)
+' - '+施放(DATEPART(YYYY,[date])as nvarchar(50))
来自ArtistCalendar
答案 4 :(得分:0)
您可以使用DATENAME()函数获取给定月份的名称,可以缩写为:
SELECT LEFT(DATENAME(mm, GETDATE()),3) -- Output: 'Sep'
您可以使用以下方式追加年份:
SELECT YEAR(GETDATE())
这必须转换为字符串值,以便与您提供的值进行比较。所以你可以这样做:
SELECT LEFT(DATENAME(mm, GETDATE()),3) + '-'
+ CAST(YEAR(GETDATE()) AS NVARCHAR(4)) AS InputDate -- Output: Sep-2014
检查所提供值的相等性,例如Sep-2014
:
SELECT LEFT(DATENAME(mm, GETDATE()),3) + '-'
+ CAST(YEAR(GETDATE()) AS NVARCHAR(4)) AS InputDate,
GETDATE() as FullDate,
CASE WHEN LEFT(DATENAME(mm, getdate()),3) + '-'
+ CAST(YEAR(GETDATE()) as nvarchar(4)) = 'SEP-2014'
THEN 'True'
ELSE 'False'
END as Equality
<强> Ouptut 强>
InputDate FullDate Equality
----------------------------------------------
Sep-2014 2014-09-15 14:35:57.427 True
与您的桌子一起使用
DECLARE @compareDate AS NVARCHAR(10)
SET @compareDate = 'Jan-2014' -- set this
SELECT LEFT(DATENAME(mm, [YOUR_COL]),3) + '-'
+ CAST(YEAR([YOUR_COL]) AS NVARCHAR(4)) AS InputDate,
[YOUR_COL]as FullDate,
CASE WHEN LEFT(DATENAME(mm, [YOUR_COL]),3) + '-'
+ CAST(YEAR([YOUR_COL]) as nvarchar(4)) = @compareDate
THEN 'True'
ELSE 'False'
END as Equality
From [YOUR_TABLE]
只需将[YOUR_COL]
替换为日期列,将[YOUR_TABLE]
替换为包含数据列的表。
答案 5 :(得分:0)
SQL Server语法为:
navigate https://angular-z3shbr.stackblitz.io/
setValue type=text some text
execAndWait document.getElementsByTagName('input')[0].dispatchEvent(new Event("input"));
clickAndWait innerText=Next