标签: t-sql

TSQL:如何将本地时间转换为UTC?(SQL Server 2008)

我们正在处理需要处理来自不同时区和夏令时设置的全球时间数据的应用程序.我们的想法是在内部以UTC格式存储所有内容,只为本地化用户界面来回转换.SQL Server是否提供任何机制来处理给定时间,国家和时区的翻译?

这一定是一个常见的问题,所以我很惊讶谷歌不会发现任何可用的东西.

有什么指针吗?

t-sql sql-server timezone utc sql-server-2008

72
推荐指数
6
解决办法
20万
查看次数

为什么不使用varchar(max)?

在数据库设计方面,我有点老了,所以我完全在列中使用正确的数据大小.但是,在为朋友查看数据库时,我注意到他使用varchar(max)了很多.现在,我的想法是把它扔回给他并告诉他改变它.但后来我想到了它并且没有提出他不使用它的充分理由(如果你想知道的话,他会使用案例类型工具来生成数据库).

我一直在研究使用的主题,varchar(max)我不能真正想出他不使用它的任何理由.

他没有将列用于索引,位于数据库上的应用程序对输入有限制,因此它不允许在字段中使用大量条目.

任何帮助将不胜感激,以帮助我让他看到光:).

sql t-sql sql-server-2008 varcharmax

72
推荐指数
2
解决办法
5万
查看次数

完全外部加入与完全加入

只需使用查询和示例来更好地了解联接.我注意到在SQL Server 2008中,以下两个查询给出了相同的结果:

SELECT * FROM TableA
FULL OUTER JOIN TableB
ON TableA.name = TableB.name
Run Code Online (Sandbox Code Playgroud)
SELECT * FROM TableA
FULL JOIN TableB
ON TableA.name = TableB.name
Run Code Online (Sandbox Code Playgroud)

这些是完全相同的动作产生相同的结果,还是会在更复杂的例子中遇到不同的结果?这只是可互换的术语吗?

sql t-sql join sql-server-2008

72
推荐指数
3
解决办法
15万
查看次数

如何在SQL Server中使用RANK()

RANK()在SQL Server中使用时遇到问题.

这是我的代码:

SELECT contendernum,
       totals, 
       RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank
FROM (
   SELECT ContenderNum,
          SUM(Criteria1+Criteria2+Criteria3+Criteria4) AS totals
   FROM Cat1GroupImpersonation
   GROUP BY ContenderNum
) AS a
Run Code Online (Sandbox Code Playgroud)

该查询的结果是:

contendernum    totals    xRank
          1       196        1
          2       181        1
          3       192        1
          4       181        1
          5       179        1
Run Code Online (Sandbox Code Playgroud)

我想要的结果是什么:

contendernum    totals    xRank
          1       196        1
          2       181        3
          3       192        2
          4       181        3
          5       179        4
Run Code Online (Sandbox Code Playgroud)

我想根据结果对结果进行排名totals.如果有相同的值181,那么两个数字将具有相同的值xRank.

t-sql sql-server

72
推荐指数
3
解决办法
37万
查看次数

如何使用sql从Date字段按月分组

如何从日期字段中按月分组(而不是按日分组)?

这是我的日期字段的样子:

2012-05-01
Run Code Online (Sandbox Code Playgroud)

这是我目前的SQL:

select  Closing_Date, Category,  COUNT(Status)TotalCount from  MyTable
where Closing_Date >= '2012-02-01' and Closing_Date <= '2012-12-31'
and Defect_Status1 is not null
group by  Closing_Date, Category
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

72
推荐指数
4
解决办法
23万
查看次数

使用逗号作为分隔符将多行转换为一行

如果我发出SELECT username FROM Users我得到这个结果:

username
--------
Paul
John
Mary

但我真正需要的是一个行与所有以逗号分隔值,如下所示:

Paul, John, Mary

我该怎么做呢?

t-sql csv rows

71
推荐指数
8
解决办法
28万
查看次数

Microsoft的数据库命名约定?

我从MSDN 找到了命名指南,但它是否适用于Microsoft的MSSQL数据库?

sql t-sql sql-server

71
推荐指数
4
解决办法
5万
查看次数

SQL Server ORDER BY日期和空值最后

我想按日期订购.我希望最新的日期出现在第一位.这很容易,但有许多记录是空的,而且这些记录在任何有日期的记录之前.

我尝试了一些没有成功的事情:

ORDER BY ISNULL(Next_Contact_Date, 0)

ORDER BY ISNULL(Next_Contact_Date, 999999999)

ORDER BY coalesce(Next_Contact_Date, 99/99/9999)
Run Code Online (Sandbox Code Playgroud)

我如何按日期订购并让空值最后出现?数据类型是smalldatetime.

t-sql sql-server sql-server-2005

71
推荐指数
2
解决办法
9万
查看次数

重命名SQL Azure数据库?

如何在sql Azure中重命名数据库?

我试过Alter database old_name {MODIFY NAME = new_name}但没有工作.

SQL Azure中是否提供此功能?

t-sql rename azure azure-sql-database

71
推荐指数
5
解决办法
4万
查看次数

如何将日期时间与SQL Server中的日期进行比较

Select * from [User] U
where  U.DateCreated = '2014-02-07'     
Run Code Online (Sandbox Code Playgroud)

但是在数据库中,用户是2014-02-07 12:30:47.220在我放置时创建的'2014-02-07'

它不显示任何数据

sql t-sql sql-server datetime

71
推荐指数
2
解决办法
29万
查看次数