我在SQL server数据库中有一个字段类型DateTime。 我正在开发一个Web服务来获取日期和时间。
日期以4/14/2013 10:10:01 PM的格式存储在数据库中。
现在,我有一个webmethod如下:
public string GetdataJson(string lastdate)
{
DateTime myDateTime = DateTime.Parse(lastdate);
string getvalue = "select * from tblfameface where last_updated >='" + myDateTime + "'";
con1 = new SqlConnection(conString1);
con1.Open();
SqlCommand cmd = new SqlCommand(getvalue, con1);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt1 = new DataTable();
da.Fill(dt1);
string jsonString = JsonConvert.SerializeObject(dt1);
String finalString = "{\"Records\":";
finalString += jsonString;
finalString += "}";
return finalString;
}
但是这段代码给了我一个错误,String没有被识别为有效的DateTime。 如何将字符串转换为日期时间格式,如4/14/2013 10:10:01 PM ?? 帮助!
答案 0 :(得分:5)
你想要12小时的时钟使用小hh,你想要24小时制使用大写HH
DateTime formatted =Covert.ToDateTime( lastdate.ToString("dd/MM/yyyy hh:mm:ss.fff",
CultureInfo.InvariantCulture));
如果您想使用12小时制,请使用格式字符串中的tt来生成AM / PM指示符。
答案 1 :(得分:2)
在您的格式字符串中,使用tt
作为 PM / AM 部分。这是代码:
DateTime dateTime =
DateTime.ParseExact("4/14/2013 10:10:01 PM",
"M/dd/yyyy hh:mm:ss tt",
System.Globalization.CultureInfo.InvariantCulture);
这也应该有效:
DateTime result = DateTime.Parse("04/14/2013 10:10:01 PM");
你确定你得到了正确的字符串吗?
答案 2 :(得分:0)
使用此代码
DateTime.ParseExact(yourString, "MM/dd/yyyy hh:mm:ss tt");
答案 3 :(得分:0)
试试这个:
string getvalue = "select * from tblfameface where
last_updated >= Convert(DateTime, '" + myDateTime + "')";
或者这取决于您在last_updated列上的SQL数据类型
string getvalue = "select * from tblfameface where
last_updated >= Convert(DateTime2(7), '" + myDateTime + "')";
答案 4 :(得分:0)
用
替换查询行string getvalue = "select * from tblfameface where CAST(last_updated AS
DATETIME)>='" + myDateTime.ToString("dd/MM/yyyy hh:mm:ss tt") + "'";