如何在 Cosmos DB 查询中将字符串“mm/dd/yyyy hh:mm:ss AM/PM”转换为日期时间格式

问题描述 投票:0回答:1

如何在 Cosmos DB 查询中将字符串“mm/dd/yyyy hh:mm:ss AM/PM”转换为日期时间格式。 例如:日期存储为“8/19/2023 4:44:55 PM”,需要转换为标准日期才能应用日期操作。

azure azure-cosmosdb
1个回答
0
投票

通过使用此用户定义函数 (UDF),您可以将字符串“mm/dd/yyyy hh:mm:ss AM/PM”转换为日期时间格式,并在 Cosmos DB 查询中执行日期操作。

使用 Azure 门户或 Azure CLI 在 Cosmos DB 帐户中创建 UDF。 代码示例:

// JavaScript UDF to convert string to DateTime format
function convertStringToDateTime(dateString) {
    var parts = dateString.split(/[\s/:]+/);
    var year = parseInt(parts[2]);
    var month = parseInt(parts[0]) - 1; // months are 0-based in JavaScript Date object
    var day = parseInt(parts[1]);
    var hour = parseInt(parts[3]);
    var minute = parseInt(parts[4]);
    var second = parseInt(parts[5]);

    if (parts[6] === "PM" && hour < 12) {
        hour += 12;
    }

    return new Date(year, month, day, hour, minute, second);
}

上面的 UDF 示例是用 JavaScript 编写的,您可以将其保存在您的 Cosmos DB 帐户中以供重用。

通过下面的示例,您可以在 Cosmos DB 查询中使用 UDF:

SELECT c.id, udf.convertStringToDateTime(c.dateString) AS convertedDateTime
FROM c

将 c.dateString 替换为文档中包含日期的字符串字段的路径。

© www.soinside.com 2019 - 2024. All rights reserved.