如何在 Cosmos DB 查询中将字符串“mm/dd/yyyy hh:mm:ss AM/PM”转换为日期时间格式。 例如:日期存储为“8/19/2023 4:44:55 PM”,需要转换为标准日期才能应用日期操作。
通过使用此用户定义函数 (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 替换为文档中包含日期的字符串字段的路径。