rsr*_*eji 4 sql-server datetime datetime-format
我们正在努力将我们的应用程序从Oracle 11迁移到SQL Server 2014.我们的Java代码中有很多地方需要DD-Mon-YY格式化日期.我找不到带有转换或任何其他内置函数的选项来执行此操作,并将" - "填充到转换后的字符串中.
今天我们正在使用类似的东西
upper((((CONVERT(NVARCHAR, Dt_Column, 113), 3, 1, '-'), 7, 3, '-'),1,18))
Run Code Online (Sandbox Code Playgroud)
我们在同一视图中使用多个列来加载几十万行,我怀疑它可能会影响我们的性能.任何输入/想法都会有所帮助.先感谢您.
这将达到预期的效果:
SELECT REPLACE(CONVERT(NVARCHAR, Dt_Column, 106), ' ', '-')
Run Code Online (Sandbox Code Playgroud)
样式106用于CONVERT提供格式的日期dd mon yyyy,然后您可以使用短划线替换空格.
更新
根据格式还应包含时间的其他信息,您可以尝试使用FORMAT:
SELECT FORMAT(SYSDATETIME(), 'dd-MMM-yyyy hh:mm:ss')
Run Code Online (Sandbox Code Playgroud)
要记住的一件事是FORMAT依赖于CLR,因此您需要衡量性能影响.尽管如此,使用您的数据集,单个调用FORMAT可能与多个本机函数调用相同或可能执行得更好.
在任何一种情况下,如果您发现以正确格式获取日期的影响太大,您可以使用SQL Server中的持久计算列来保存格式化日期.如果您不想在Java代码中重命名列引用,则可以重命名源列,并将新计算列命名为源列的原始名称.
[PERSISTED]将物理存储表中的计算值,并在更新计算列所依赖的任何其他列时更新值
| 归档时间: |
|
| 查看次数: |
10465 次 |
| 最近记录: |