在SQL Server中比较特定格式的日期

我有一个名为“Mon-YY”(varchar(n)数据类型)的列,其中一个表的值为:

AUG-12

SEP-12

OCT-12

NOV-12

DEC-12

扬13

二月13

MAR-13

APR-13

五月-13

俊13

我想比较这些值并根据指定的日期范围从表中检索记录。

我假设我需要将上述值转换​​为DATE格式。 但我不确定那么我该如何跟踪日子。


您可以使用DATEPART功能,但您需要在完整日期内完成:

SELECT DATEPART(MM, 'Aug-12') --> error
SELECT DATEPART(MM', 01-Aug-12') --> 8

所以试试这样的事情:

SELECT
  DATEPART(MM, CONCAT('01-', [Mon-YY])) AS TheMonth,
  DATEPART(YYYY, CONCAT('01-', [Mon-YY])) AS TheYear
FROM myTable
ORDER BY TheYear, TheMonth

SELECT CONVERT (date, REPLACE (MyColumn, '-', ' 01 '))
FROM MyTable

像这样的东西应该会给你一个约会。 它将永远是本月的第一场。 您可以使用<,>或BETWEEN在WHERE子句中使用表达式。 我不知道为什么你需要跟踪他们。


我用了演员

-- example table and data
DECLARE  @table table
(
 [Mon-YY] varchar(20)
)


insert into @table values ('Aug-12')
insert into @table values ('Sep-12')
insert into @table values ('Oct-12')
insert into @table values ('Nov-12')
insert into @table values ('Dec-12')
insert into @table values ('Jan-13')
insert into @table values ('Feb-13')
insert into @table values ('Mar-13')
insert into @table values ('Apr-13')
insert into @table values ('May-13')
insert into @table values ('Jun-13')


select cast('01-' + [Mon-YY] as Date)
from @table
链接地址: http://www.djcxy.com/p/65609.html

上一篇: Comparing Dates in a specific format in SQL Server

下一篇: How to write a query for zodiac using case in mySQL