azure - 在 Azure SQL 数据仓库(突触)中指定 datetime2 格式
问题描述
在 Azure SQL 数据仓库中创建表时指定 datetime2 字段格式的正确方法是什么?我似乎无法在文档中找到示例。
数据如下所示:
“2020-09-14T20:50:48.000Z”
CREATE TABLE [Foo].[Bar](
...
MyDateTime datetime2(['YYYY-MM-DDThh:mm:ss[.fractional seconds]')
)
解决方案
正如 Panagiotis 所指出的,基础表示是实际日期值的 int/long。这就是 RDBMS 引擎如何快速计算两个日期之间的差异(星期一和星期五之间的日期是一个简单的减法问题)。要回答您的问题,您只需将创建表的格式设置为:
CREATE TABLE [Foo].[Bar](
...
MyDateTime datetime2
)
如果您对格式化查询中的结果感兴趣,可以查看CONVERT或FORMAT函数。例如,如果您想要格式dd-mm-yyyy(意大利日期),您可以使用以下任一格式:
SELECT
CONVERT(VARCHAR, CURRENT_TIMESTAMP, 105)
, FORMAT(CURRENT_TIMESTAMP, 'dd-MM-yyyy')
注意:CONVERT通常比FORMAT更快,如果您有支持的日期格式,则推荐使用这种方法。这是因为FORMAT函数依赖于包含上下文/进程跳转的 CLR。
推荐阅读
- sql - 比较 DB2 的 SQL 中的日期和时间
- powershell - 将 AD 信息移动到 excel 的脚本,有没有办法为描述值编写 if 函数?
- java - 读取图像时出现异常
- pdf - 使用 nltk 提取和标记单词 - 错误的输出
- unity3d - 构建完成,结果为“失败”UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
- html - 如何在输入中显示光标焦点(垂直线)
- ios - Swift 转义块声明
- dynamics-crm-2011 - 如何解决 Dynamics 365 门户中的缓存问题?
- stream - 如何将文件流作为参数传递给 Rcpp 函数?
- routing - GKE istio-ingressgateway 需要帮助解决 HTTP 错误 503