在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