2016-09-08 6 views
0

Я искал, но не смог найти способ, чтобы получить дату в этом формате (ДД.ММ.ГГГГ) Помогите пожалуйста изменить этот запрос:Получение текущей даты в SQL Server

DECLARE @date datetime 
set @date = '01.05.2016' 
SELECT [User], cast(DATEADD(SECOND, sum(datediff(DAY, @date,[Start])),@date) as date)'Date' 
     ,cast(DATEADD(SECOND, sum(datediff(SECOND, '00:00:00',[Period])),'00:00:00') as time)'Total time' 
    FROM [Table].[TableAction] 
    where 
    [Start] >= @date+'00:00:00' and [Start] <= @date+'23:59:59' 
    group by [USER] 
+0

Что вы попробовали, у вас проблема Google, это здравый смысл. мы здесь не для того, чтобы делать домашнее задание – swe

ответ

2

Лучше всего хранить DateTime в формате даты и времени в базе данных, и всякий раз, когда вам нужно данные, которые вы можете получить доступ к нему и отформатировать его в соответствии с вашими потребностями.

DECLARE @Currentdate DATETIME; 
SET @Currentdate=GETDATE(); -- Store cuurent date into variable 

И тогда, когда вы хотите, чтобы отобразить его использовать ниже для форматирования ДД.ММ.ГГГГ

SELECT CONVERT(VARCHAR(10),GETDATE(),104); -- format the @Currentdate to the required format. 

ФОРМАТЕ работает только в SQL Server 2012+. Если ваша база данных SQL Server 2008 или 2005 FORMAT не работает. В этом случае вы можете перейти на функцию CONVERT.

Итак, если база данных находится выше SQL SERVER 2012, вы можете пойти на ФОРМАТЕ как предложено Tschallacka

DECLARE @Currentdate DATETIME=GETDATE(); -- Store cuurent date into variable 

И тогда, когда вы хотите, чтобы отобразить его использовать ниже для форматирования dd.MM.YYYY

SELECT FORMAT(@Currentdate,'dd.MM.yyyy') -- format the @Currentdate to the required format. 
4
DECLARE @date datetime set @date = GETDATE() 

Теперь, чтобы вывести его, вам нужно «форматировать» его.

select FORMAT (@date,'MM.dd.yy') as date 

enter image description here