sql-server – 未记录的CONVERT样式 – datetime 23
最近我偶然发现了CONVERT函数样式23,这非常方便,因为它以格式yyyy-mm-dd给你DATE.问题是它没有在msdn中记录! (在CONVERT上的F1之后从SSMS帮助链接:
http://msdn.microsoft.com/en-us/library/ms187928%28SQL.105%29.aspx).
select convert( date,'2012-01-30',23) select convert(varchar(255),getdate(),23) 这种风格非常有用,我一直都错过了,但我担心的是: 解决方法主要基于 this article,文档中还有很多其他文档丢失(自2005年以来可能已经引入了更多文档,自从我尝试探索以来已经有一段时间了):--DROP TABLE dbo.DateTimeStyles; CREATE TABLE dbo.DateTimeStyles ( styleID TINYINT PRIMARY KEY,outputLength TINYINT,outputSyntax AS (CONVERT(VARCHAR(255),'CONVERT(CHAR(' + RTRIM(outputLength) + '),CURRENT_TIMESTAMP,' + RTRIM(styleID) + ')')),outputSample VARCHAR(255) ); INSERT dbo.DateTimeStyles(styleID,outputLength) VALUES (0,19 ),(1,8 ),(2,(3,(4,(5,(6,9 ),(7,10 ),(8,(9,26 ),(10,(11,(12,6 ),(13,24 ),(14,12 ),(20,(21,23 ),(22,20 ),(23,(24,(25,(100,(101,(102,(103,(104,(105,(106,11 ),(107,(108,(109,(110,(111,(112,(113,(114,(120,(121,(126,(127,(130,32 ),(131,25 ); DECLARE @sql NVARCHAR(MAX) = N''; SELECT @sql += N'UPDATE dbo.DateTimeStyles SET outputSample = ' + outputSyntax + ' WHERE styleID = ' + RTRIM(StyleID) + ';' FROM dbo.DateTimeStyles; EXEC sp_executesql @sql; SELECT styleID,outputSyntax,outputSample FROM dbo.DateTimeStyles ORDER BY styleID; 当然,与许多未记载的内容一样,使用“秘密”内容需要您自担风险.您应该在使用它们的位置标记模块,以便在升级之前对它们进行测试 – 它们不会是升级顾问,最佳实践分析器,弃用跟踪事件,扩展事件等等,它们将会提取并告诉您,因为微软可以自由决定删除任何未记录的功能/语法(尽管我发现它们不太可能删除任何这些,即使他们对记录它们不感兴趣).如果您有一个部署Service Pack /升级的测试服务器,那么在任何此类升级之后运行此代码将告诉您此处使用的任何样式是否已被删除.因此,您可能希望将此代码保存在某处,并且仅包含您主动使用的未记录的样式编号. (编辑:南通站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 矛与盾----赛门铁克的激活战略惨遭破解
- sql-server – 我们应该将数据库移动到我们的(共享)Web主机
- HTML行内元素与块级元素有哪些及区别详解
- sql-server – 为什么SQL Server 2008在简单的SQL查询上崩溃
- 垃圾邮件玩猫捉鼠游戏 手段愈发隐蔽高超
- SQL Server 2012使用分析服务多维模式建立简单的分析模型
- Tech Report盛赞升技KV8-MAX3主机板
- sql-server – 如何使用SELECT INTO复制表但忽略IDENTITY属
- sql-server – 作为一名DBA,我将如何从Oracle转换到SQL Ser
- 佳能用户看过来 三款超值红圈镜头推荐