gpt4 book ai didi

sql-server - Sql Server 日期格式 DD-Mon-YY

转载 作者:行者123 更新时间:2023-12-03 02:26:53 25 4
gpt4 key购买 nike

我们正在努力将应用程序从 Oracle 11 迁移到 SQL Server 2014。我们的 Java 代码中有很多地方需要 DD-Mon-YY 格式的日期。我找不到包含 Convert 或任何其他内置函数的选项来执行此操作,而无需将“-”填充到转换后的字符串中。

今天我们使用类似的东西

upper((((CONVERT(NVARCHAR, Dt_Column, 113), 3, 1, '-'), 7, 3, '-'),1,18))

我们将其用于同一 View 中的多个列,加载了数十万行,我怀疑这可能会影响我们的性能。任何意见/想法都会有帮助。预先感谢您。

最佳答案

这将达到预期的效果:

SELECT REPLACE(CONVERT(NVARCHAR, Dt_Column, 106), ' ', '-')

样式106对于 CONVERT提供格式为 dd mon yyyy 的日期,然后您只需用破折号替换空格即可。

更新

根据格式还应包含时间的附加信息,您可以尝试使用 FORMAT :

SELECT FORMAT(SYSDATETIME(), 'dd-MMM-yyyy hh:mm:ss')

需要记住的一件事是 FORMAT依赖于 CLR,因此您需要衡量性能影响。不过,对于您的数据集,只需调用 FORMAT可能与多个 native 函数调用等效或可能执行得更好。

无论哪种情况,如果您发现以正确格式获取日期的影响太大,则可以使用 SQL Server 中的持久计算列来保存格式化日期。如果您不想重命名 Java 代码中的列引用,可以重命名源列并将新的计算列命名为源列的原始名称。

参见https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-table-computed-column-definition-transact-sql .

[PERSISTED] will physically store the computed values in the table, and update the values when any other columns on which the computed column depends are updated

关于sql-server - Sql Server 日期格式 DD-Mon-YY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45122812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com