小编Cad*_*oux的帖子

只有没有时间的MS SQL日期

大家好,

我在很长一段时间内遇到了一些困惑,基本上使用T-SQL来构建DateTime SQL类型.基本上,我想将DateTime值设为2008-12-1 14:30:12并将其设为2008-12-1 00:00:00.我们为报告运行的很多查询在WHERE子句中使用了一个日期值,但是我有一天的开始和结束日期值并且使用BETWEEN,或者我找到了一些其他方法.

目前我正在使用以下内容: WHERE CAST(CONVERT(VARCHAR, [tstamp], 102) AS DATETIME) = @dateParam

然而,这看起来有点笨重.我希望会有更简单的东西 CAST([tstamp] AS DATE)

有些地方在网上推荐使用DATEPART()函数,但最后我得到了这样的结果:


WHERE DATEPART(year, [tstamp]) = DATEPART(year, @dateParam)
AND DATEPART(month, [tstamp]) = DATEPART(month, @dateParam)
AND DATEPART(day, [tstamp]) = DATEPART(day, @dateParam)

也许我过分关注小事,如果是的话请告诉我.我只是想确保我写的东西尽可能高效.我想消除任何薄弱环节.

有什么建议?

谢谢,
C

感谢大家的好评.很多有用的信息.我将改变我们的功能以消除操作员左侧的功能.虽然我们的大多数日期列都不使用索引,但它可能仍然是一种更好的做法.

sql t-sql sql-server

40
推荐指数
5
解决办法
13万
查看次数

SSMS结果到网格 - 复制/粘贴中没有保留CRLF - 任何更好的技术?

当我在网格中有结果集时,如:

SELECT 'line 1
line 2
line 3'
Run Code Online (Sandbox Code Playgroud)

要么

SELECT 'line 1' + CHAR(13) + CHAR(10) + 'line 2' + CHAR(13) + CHAR(10) + 'line 3'
Run Code Online (Sandbox Code Playgroud)

使用嵌入式CRLF,网格中的显示似乎用空格替换它们(我猜它们将显示所有数据).

问题是,如果我是代码生成脚本,我不能简单地剪切和粘贴它.我必须转换代码以打开游标并打印相关列,以便我可以从文本结果中复制和粘贴它们.

是否有更简单的解决方法来保留结果网格中的复制/粘贴操作中的CRLF?

网格有用的原因是我正在为不同列中的同一对象生成许多脚本 - 一列中的bcp,另一列中的xml格式文件,另一列中的表创建脚本等等...

sql-server formatting ssms

40
推荐指数
3
解决办法
1万
查看次数

SQL ORDER字符数字

我有一列数字存储为字符.当我为此列执行ORDER BY时,我得到以下内容:

100
131
200
21
30
31000

我如何以数字方式订购这些字符?我需要转换某些内容还是已经有SQL命令或函数?

谢谢.

sql numerical type-conversion sql-order-by char

38
推荐指数
3
解决办法
7万
查看次数

如何在sql server中检查所有存储过程是否正常?

如果我删除一个或多个表,如何在sql server中检查所有存储过程是否正常?

sql sql-server dependencies metadata

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

树结构的优化SQL

如何从具有最佳性能的数据库中获取树结构数据?例如,假设您在数据库中有一个文件夹层次结构.folder-database-row具有ID,NameParentID列的位置.

您是否会使用特殊算法一次性获取所有数据,最大限度地减少数据库调用量并在代码中处理它?

或者你会使用多次调用数据库并直接从数据库中获取结构?

也许根据x数据库行数,层次结构深度或其他什么有不同的答案?

编辑:我使用Microsoft SQL Server,但其他观点的答案也很有趣.

sql sql-server tree-structure

35
推荐指数
5
解决办法
3万
查看次数

使用Sql Server 2008更改通知

我有一个由数据库和几个服务组成的应用程序.其中一个服务将信息添加到数据库(由用户触发).

另一个服务定期查询数据库以进行更改,并使用新数据作为输入进行处理.

到目前为止,我使用了一个可配置的计时器,每30秒左右查询一次数据库.我读到了有关更改通知的Sql 2005.但是,在Sql 2008中,不推荐使用此功能.

直接在代码中收到数据库中发生的更改通知的最佳方法是什么?什么是最佳做法?

sql-server notifications sql-server-2008

35
推荐指数
2
解决办法
3万
查看次数

批量插入,SQL Server 2000,unix换行符

我试图将.csv文件插入到具有unix换行符的数据库中.我正在运行的命令是:

BULK INSERT table_name
FROM 'C:\file.csv' 
WITH 
( 
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
) 
Run Code Online (Sandbox Code Playgroud)

如果我将文件转换为Windows格式,则加载有效,但如果可以避免,我不想执行此额外步骤.有任何想法吗?

sql sql-server bulkinsert

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

具有增量整数列的MSSQL Select语句...不是来自表

如果可能的话,我需要一个t-sql查询,它从任意表返回值,也返回一个增量整数列,第一行的值为1,第二行的值为2,依此类推.

这个列实际上并不存在于任何表中,并且必须是严格增量的,因为ORDER BY子句可以对表的行进行排序,并且我希望增量行始终处于完美形状...

提前致谢.

--EDIT抱歉,忘记提及,必须在SQL Server 2000上运行

sql sql-server sql-server-2000 row-number auto-increment

34
推荐指数
3
解决办法
10万
查看次数

混淆,散列和加密有什么区别?

混淆,散列和加密有什么区别?

这是我的理解:

  • 散列是一种单向算法; 无法逆转
  • 混淆类似于加密,但不需要任何"秘密"来理解(ROT13就是一个例子)
  • 加密是可逆的,但这样做需要"秘密"

encryption obfuscation hash

32
推荐指数
3
解决办法
2万
查看次数

如何从SQL CLR函数打印消息?

有没有相当于

PRINT 'hello world'
Run Code Online (Sandbox Code Playgroud)

哪个可以从CLR(C#)代码调用?

我正在尝试在我的函数中输出一些调试信息.我无法运行VS调试器,因为这是一个远程服务器.

谢谢!

sql-server debugging trace sqlclr

32
推荐指数
2
解决办法
3万
查看次数