我有一个SQL Server表,列TaskAssignDate
,其中包含
2017-09-02 00:00:00.000
我想从该列中分隔日期和时间,并在不同的列中显示数据。
我有像这样的SQL查询
select
TaskAutoId, UserAutoId,
CONVERT(varchar, TaskAssignDate, 100) as TaskAssignDate,
TaskDescription, TaskStartDate,
CONVERT(varchar, TaskEndDate, 100) as TaskEndDate,
IsCloseByUser
from
tblTask
where
IsSelfAssign = 1
我想编辑以下查询,并将我的列(taskassigndate
)拆分为两列
这是一种正确的方法吗?
答案 0 :(得分:4)
您可以使用CAST
以及要投射到的相应数据类型,DATE
和TIME
:
select TaskAutoId
, UserAutoId
, CONVERT(varchar, TaskAssignDate, 100) as TaskAssignDate
, TaskDescription
, TaskStartDate
, CONVERT(varchar, TaskEndDate, 100) as TaskEndDate
, IsCloseByUser
, CAST(TaskAssignDate AS DATE) TaskAssignDate -- the date part
, CAST(TaskAssignDate AS TIME) TaskAssignTime -- the time part
from tblTask
where IsSelfAssign = 1
答案 1 :(得分:1)
SQL Server 2008及更高版本:
-- Select date
SELECT CAST(GETDATE() AS DATE);
-- Select time
SELECT CAST(GETDATE() AS TIME);
答案 2 :(得分:0)
试试这个
select TaskAutoId
, UserAutoId
, CONVERT(varchar, TaskAssignDate, 100) as TaskAssignDate
, TaskDescription
, TaskStartDate
, CONVERT(varchar, TaskEndDate, 100) as TaskEndDate
, IsCloseByUser
, CONVERT(VARCHAR(10), TaskAssignDate, 101) TaskAssignDate -- the date part
, CONVERT(VARCHAR(10), TaskAssignDate, 108) TaskAssignTime -- the time part
from tblTask
where IsSelfAssign = 1