0

由于我是 SQL Server 的新手,我一直在尝试实现以下内容:

我有的

我有一张Sale如下表:

CREATE TABLE [dbo].[Sale](
[SaleID] [int] IDENTITY(1,1) NOT NULL,
[ModelID] [int] NOT NULL,
[CustomerID] [int] NOT NULL,
[SaleTimeStamp] [datetime] NULL,
[IsPresent] [bit] NULL
) ON [PRIMARY]

其中条目SaleTimeStamp如下:2013-06-04 12:14:32.260

我想要的是:

我需要创建一个具有以下属性的表:

Date
Month
Year
Quarter

我必须从表中派生出所有列SaleTimeStampSale而季度基于Month(第一/第二/第三...)的值。我想为此功能创建一个存储过程。我已经在 MS SQL 2008 服务器中使用已解析的字符串值过滤了日期时间列。但还是想不通。我不知道该怎么做。

任何帮助,将不胜感激。谢谢!!

4

1 回答 1

3

要获取日期,您可以将值转换为DATE数据类型:

SELECT SaleTimeStamp,CAST(SaleTimeStamp AS DATE) [Date] FROM dbo.Sale;

要获取日期部分,您可以使用该DATEPART功能。(请参阅 msdn 上的 DATEPART。

SELECT SaleTimeStamp,
DATEPART(MONTH, SaleTimeStamp) AS [Month], 
DATEPART(QUARTER, SaleTimeStamp) AS [Quarter], 
DATEPART(YEAR, SaleTimeStamp) AS [Year] 
FROM dbo.Sale;
于 2013-07-24T09:45:42.023 回答