SELECT
DateAdded,
Cast(DateAdded AS Date) AS DateAddedV1,
Cast(DateAdded AS Time) AS DateTime,
SELECT CAST(DateAdded AS Date(mm:dd) AS OrderDate
FROM Products
我是SQL的初学者,我试图将DateAdded
列作为OrderDate
返回,只有月份和日期,但我似乎无法正确使用语法。我感谢任何人的帮助。
答案 0 :(得分:3)
使用DatePart
功能从day
类型中提取month
和Datetime
,
Select Datepart(Month,DateAdded) AS [Month], -- Month(Dateadded)
Datepart(Day,DateAdded) as [Day], -- Day(Dateadded)
..
From Products
更新:仅使用cast
功能,您无法提取Month
和Day
。如果您想将月份和日期保持在同一列中
SELECT CONVERT(VARCHAR(2), Month(DateAdded)) + ':'
+ CONVERT(VARCHAR(2), Day(DateAdded))
.....
要获得领先的零使用right
函数并从DateAdded中提取Time
,请使用Convert
值108
函数
SELECT right('0'+CONVERT(VARCHAR(2), Month(DateAdded)),2) + ':'
+ right('0'+CONVERT(VARCHAR(2), Day(DateAdded)) ,2) as [Mon:Day],
convert(varchar(10),DateAdded,108) as [Time]
.........
答案 1 :(得分:2)
我想我本学期正在完成这项任务。这是我最终得到的结果,因为它必须使用CAST函数完成:
SELECT DateAdded,
CAST(DateAdded AS date) AS DateOnly,
CAST(DateAdded AS time) AS TimeOnly,
CAST(DateAdded AS varchar(6)) MonthDay
FROM Products;
这是有效的,因为varchar总是在前6个字符中完全具有Month the Day。所有月份都是3个字符(1月,2月,3月,4月),然后有一个空格,然后是2位数的日,或2个空格和1位数日。无论哪种方式,它总是最多可以添加6个字符。
答案 2 :(得分:1)
在这里,您询问日期/时间信息的可见格式。
CONVERT(data_type [(length)],表达式[,样式])
请注意样式参数(整数),如果使用CONVERT,这很重要。使用这两种方法显示日期/时间信息的非常有用的参考是HERE,以下是一个很小的例子:
查询1 :
SELECT
FORMAT(SYSDATETIME(), 'MMM dd yyyy')
, CONVERT(VARCHAR(11), SYSDATETIME(), 100) -- note length set to (11)
<强> Results 强>:
|-------------|-------------|
| Oct 11 2015 | Oct 11 2015 |
答案 3 :(得分:0)
您可以使用RTRIM
功能,而不是像在NoDisPlayName的答案中那样进行转换。
SELECT RIGHT('0' + RTRIM(MONTH(DateAdded)), 2)