2017-03-13 5 views
3

すべてのDBとユーザーのリストを取得するためのクエリを実行します。クエリは正常に実行されます。EXCELへのエクスポート時にcreate_date/modify_dateが正しくない

クエリの結果をすべて選択してコピーしてExcelに貼り付けると、複数の列が正しく表示されます。それだけが正しくないのはcreate_datemodify_dateです。年月日は表示されません。下の画像を参照してください:

https://i.stack.imgur.com/t9nxn.jpg

何を行うことができますか?おかげさまで

クエリ:

DECLARE @DB_USers TABLE 
(DBName sysname, UserName sysname, LoginType sysname, AssociatedRole varchar(max),create_date datetime,modify_date datetime) 

INSERT @DB_USers 
EXEC sp_MSforeachdb 

' 
use [?] 
SELECT ''?'' AS DB_Name, 
case prin.name when ''dbo'' then prin.name + '' (''+ (select SUSER_SNAME(owner_sid) from master.sys.databases where name =''?'') + '')'' else prin.name end AS UserName, 
prin.type_desc AS LoginType, 
isnull(USER_NAME(mem.role_principal_id),'''') AS AssociatedRole ,create_date,modify_date 
FROM sys.database_principals prin 
LEFT OUTER JOIN sys.database_role_members mem ON prin.principal_id=mem.member_principal_id 
WHERE prin.sid IS NOT NULL and prin.sid NOT IN (0x00) and 
prin.is_fixed_role <> 1 AND prin.name NOT LIKE ''##%''' 

SELECT 
dbname,username ,logintype ,create_date ,modify_date , 
STUFF(
(
SELECT ',' + CONVERT(VARCHAR(500),associatedrole) 
FROM @DB_USers user2 
WHERE 
user1.DBName=user2.DBName AND user1.UserName=user2.UserName 
FOR XML PATH('') 
) 
,1,1,'') AS Permissions_user 
FROM @DB_USers user1 
GROUP BY 
dbname,username ,logintype ,create_date ,modify_date 
ORDER BY DBName,username 
+0

可能な重複http://stackoverflow.com/questions/([エクセルのSUMIFSは、日付とSQL Serverのクエリをリンク] 30698906/sumifs-on-excel-linked-sql-server-query-with-date)質問は異なりますが、問題/解決策は同じです。 Excelにエクスポートする前に、SQL日付を 'datetime'にキャスト/変換するだけです。これはExcelが 'datetime'だけを認識するためです。それは 'datetime2'、' date'、 'time'も認識しません**。 – Ralph

答えて

2

日付と時刻を表示するセルの日付と時刻を表示するために、Excelのセルをフォーマットします。カスタムフォーマットを使用して enter image description here

:日付形式を使用して

enter image description here

関連する問題