Fix:修复 SQL Server datetime 查询和导出精度
This commit is contained in:
6 files changed
+306
-3
No files matched your search
@@ -598,7 +598,11 @@ fn sqlserver_cell_to_json(cell: &ColumnData<'static>) -> serde_json::Value {
|
||||
return serde_json::Value::String(v.to_string());
|
||||
}
|
||||
if let Ok(Some(v)) = <chrono::NaiveDateTime as FromSql>::from_sql(cell) {
|
||||
return serde_json::Value::String(v.to_string());
|
||||
let value = match cell {
|
||||
ColumnData::DateTime(_) => crate::sqlserver_temporal::format_sqlserver_datetime_display(&v),
|
||||
_ => v.to_string(),
|
||||
};
|
||||
return serde_json::Value::String(value);
|
||||
}
|
||||
if let Ok(Some(v)) = <chrono::NaiveDate as FromSql>::from_sql(cell) {
|
||||
return serde_json::Value::String(v.to_string());
|
||||
@@ -2125,6 +2129,13 @@ mod tests {
|
||||
assert_eq!(sqlserver_cell_to_json(&cell), serde_json::json!("2026-05-13 09:08:07.123"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sqlserver_datetime_cells_display_millisecond_precision() {
|
||||
let cell = ColumnData::DateTime(Some(tiberius::time::DateTime::new(46_200, 11_001_869)));
|
||||
|
||||
assert_eq!(sqlserver_cell_to_json(&cell), serde_json::json!("2026-06-29 10:11:12.897"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sqlserver_binary_cells_are_json_hex_strings() {
|
||||
let cell =
|
||||
|
||||
Reference in new issue
Block a user