[英]Insert DateTime from JSON response in MySQL DB using C#
我已經搜索了很多東西,但是所有線程似乎都希望現在插入“ Date Time”,但我不是。
我目前收到以下格式的日期時間:
"Date":"2018-03-03T11:00:00Z"
我正在嘗試插入列數據集為DATETIME的MySQL數據庫中
我正在使用以下INSERT語句:
"INSERT INTO tblname (col1, col2) VALUES (@Name, @Date) ON DUPLICATE KEY UPDATE col1 = @Name";
通過AddWithValue參數提供值,如下所示:
Command.Parameters.AddWithValue("@Date", Jo["Results"][x]["Date"]);
這總是導致我在數據庫中收到以下信息:
0000-00-00 00:00:00
下面是所使用代碼的完整修改版本(為簡潔起見):
using MySql.Data.MySqlClient;
using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Net;
using System.Text;
namespace stackoverflow
{
class forstackoverflow
{
public static int x = 0;
public static JObject Jo { get; set; }
static void Main()
{
string apiUrl = "REMOVED URL";
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiUrl);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader readerStream = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
string json = readerStream.ReadToEnd();
readerStream.Close();
var Jo = JObject.Parse(json);
JArray id = (JArray)Jo["Results"];
for (int x = 0; x < id.Count; x++)
{
string sqlstring = "sql already highlighted.";
MySqlConnection Connection = null;
const string ConnectionString = @"REMOVED CONNECTION DETAILS";
Connection = new MySqlConnection(ConnectionString);
MySqlCommand Command = new MySqlCommand(sqlstring, Connection);
Command.Parameters.AddWithValue("@Name", (string)Jo["Results"][x]["name"]);
Command.Parameters.AddWithValue("@Date", (string)Jo["Results"][x]["date"]);
Connection.Open();
Command.ExecuteNonQuery();
Connection.Close();
Connection.Dispose();
Console.WriteLine((string)Jo["Results"][x]["name"] + " was inserted or updated in the database.");
}
}
}
}
}
當我嘗試將DateTime 2018-03-03T11:00:00Z
插入我的數據庫(這是實際的DATETIME
類型)時,出現以下錯誤:
Warning: #1265 Data truncated for column 'date' at row 1
我認為您的數據庫正在處理此錯誤,並且僅默認為0000-00-00 00:00:00
。 MySQL DATETIME
必須采用yyyy-MM-dd HH:mm:ss
的格式。 這意味着,如果您修改示例並從中刪除T
和Z
,並在日期和時間之間放置一個空格,則可以將其插入數據庫中。
您只需使用以下命令即可將其設置為正確的格式:
var test = "2018-03-03T11:00:00Z";
test = test.Replace("T", " ").Replace("Z", " ");
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.