我想写一个SQL查询,它将返回自新年以来尚未登录的用户。这是查询。用户未登录,因为新年
SELECT
[jira].[dbo].[cwd_user].user_name,
dateadd(second,cast(cast([jira].[dbo].[cwd_user_attributes].attribute_value as nvarchar(255)) as bigint)/1000,'19700101 00:00:00:000') AS last_logged
FROM
[jira].[dbo].[cwd_user], [jira].[dbo].[cwd_user_attributes]
WHERE
[jira].[dbo].[cwd_user].id = [jira].[dbo].[cwd_user_attributes].user_id
AND [jira].[dbo].[cwd_user_attributes].attribute_name = 'login.lastLoginMillis'
AND [jira].[dbo].[cwd_user_attributes].attribute_value < DATEPART(MS, '2012-12-31 23:59:59')
我收到以下错误。
nvarchar值'1374247985584'的转换溢出了一个int列。
那么消息是正确的1374247985584是太大,不适合整数。最初的attribute_value列的格式是什么? DATEPART(MS,xxx)只会返回您输入的日期为0的日期的毫秒部分,您是否还认购? –
@DaveWilliams,attribute_value列的格式是nvarchar(255)。 –
为什么将它作为nvarchar存储?如果它的日期将其作为日期存储,如果它的刻度存储为bigint等等。您实际存储在那里的是什么? –