2014-07-15 84 views
1

所以我有一個日期時間列,我想轉換爲smalldatetime在我的報告。我期待的是這樣的:日期時間格式不會做什麼應該做

2011-07-13 09:51:21.087 to 2011-07-13 09:51:21 

簡單吧?那麼datetime列正在返回一個T而不是一個空格,所以我覺得轉換應該刪除這個,但沒有用......想法?

SELECT LockoutDate 
CONVERT(smalldatetime,LockoutDate)[Small Date] 

     LockoutDate   |  Small Date 
2011-07-13T09:51:21.087 | 2011-07-13T09:51:00 

什麼是'T',它爲什麼存在?再次,實際的列是datetime不是nvarchar或任何東西...

編輯:這是我正在處理的代碼。

DECLARE @tableLockPass NVARCHAR(MAX); 
SET @tableLockPass = --Statement to check active accounts that are locked 
     N'<H3>Locked SQL Accounts</H3>' + 
     N'<table border="2" style="font-size:12px">' + 
     N'<tr>' + 
      N'<th>Instance</th>' + 
      N'<th>Instance Purpose</th>' +   
      N'<th>Domain Account</th>' + 
      N'<th>Name</th>' + 
      N'<th>Account Lock</th>' + 
      N'<th>Lockout Time</th>' + 
     N'</tr>' + 
      CAST ((
       SELECT 
       [td/@align] = 'center', 
       td = [Instance], '', 
       [td/@align] = 'center', 
       td = [Instance Purpose], '',     
       [td/@align] = 'center', 
       td = Name, '', 
       [td/@align] = 'center', 
       td = [Display Name], '', 
       [td/@align] = 'center', 
       td = [Account Lock], '', 
       [td/@align] = 'center', 
       td = [Lockout Time], '' 
       FROM(
        SELECT Name 
          ,ADDisplayName [Display Name] 
          ,Instance 
          ,InstancePurpose [Instance Purpose] 
          ,replace(IsLocked,1,'In Place') as [Account Lock] 
          ,convert(smalldatetime,LockoutTime,120) [Lockout Time] 
         FROM dbo.Security 
         WHERE IsLocked = 1 
        ) AS DS 
       ORDER BY Instance, [Display Name] 
         FOR XML PATH('tr'), TYPE 
        )AS NVARCHAR(MAX)) + 
     N'</table>'; 
IF @tableLockPass IS NOT NULL 
     EXEC msdb.dbo.sp_send_dbmail 
      @profile_name = 'SQL_DBMail', 
      @importance = 'NORMAL', 
      @recipients = '', 
      @subject = '', 
      @body = @tableLockPass, 
      @body_format = 'HTML'; 

我不知道這是否是弱代碼。我還是個相當新的SQL,所以這是我扔在一起的東西。

結果是一個漂亮的小表是這樣的:

實例[實例目的]名稱[帳戶鎖定] [鎖定時間]

DEV5一般使用BMMcClure到位2011-07-13T09: 51:00

+0

和MS報告服務?如果是這樣,您是否在企業管理器中看到錯誤或顯示在報告中? –

+0

MS SQL Server。我沒有收到任何這些報告的錯誤。 – user2280319

+0

T只是一種標準(ISO 8601)劃分時間的方式。 CONVERT(smalldatetime,LockoutDate,120) – Horaciux

回答

2

T只是標準時間的標準(ISO 8601)方法。

添加樣式到CONVERT功能來指定如何表達翻譯:

SELECT LockoutDate, 
CONVERT(smalldatetime,LockoutDate,120) [Small Date] 

See More

編輯:您是否使用的MS SQL Server在您的完整代碼

DECLARE @tableLockPass NVARCHAR(MAX); 
SET @tableLockPass = --Statement to check active accounts that are locked 
     N'<H3>Locked SQL Accounts</H3>' + 
     N'<table border="2" style="font-size:12px">' + 
     N'<tr>' + 
      N'<th>Instance</th>' + 
      N'<th>Instance Purpose</th>' +   
      N'<th>Domain Account</th>' + 
      N'<th>Name</th>' + 
      N'<th>Account Lock</th>' + 
      N'<th>Lockout Time</th>' + 
     N'</tr>' + 
      CAST ((
       SELECT 
       [td/@align] = 'center', 
       td = [Instance], '', 
       [td/@align] = 'center', 
       td = [Instance Purpose], '',     
       [td/@align] = 'center', 
       td = Name, '', 
       [td/@align] = 'center', 
       td = [Display Name], '', 
       [td/@align] = 'center', 
       td = [Account Lock], '', 
       [td/@align] = 'center', 
     td = convert(smalldatetime,[Lockout Time],120), '' 
       FROM(
        SELECT Name 
          ,ADDisplayName [Display Name] 
          ,Instance 
          ,InstancePurpose [Instance Purpose] 
          ,replace(IsLocked,1,'In Place') as [Account Lock] 
          ,convert(smalldatetime,LockoutTime,120) [Lockout Time] 
         FROM dbo.Security 
         WHERE IsLocked = 1 
        ) AS DS 
       ORDER BY Instance, [Display Name] 
         FOR XML PATH('tr'), TYPE 
        )AS NVARCHAR(MAX)) + 
     N'</table>'; 
IF @tableLockPass IS NOT NULL 
     EXEC msdb.dbo.sp_send_dbmail 
      @profile_name = 'SQL_DBMail', 
      @importance = 'NORMAL', 
      @recipients = '', 
      @subject = '', 
      @body = @tableLockPass, 
      @body_format = 'HTML'; 
+0

這是該網站的英文版:http://msdn.microsoft.com/en-us/library/ms187928.aspx –

+0

@ user2568521鏈接已更改。謝謝 – Horaciux

相關問題