如何在与 SQL 的连接中设置日期格式?

     2023-04-12     153

关键词:

【中文标题】如何在与 SQL 的连接中设置日期格式?【英文标题】:How to set date format in a connection to SQL? 【发布时间】:2011-09-05 01:21:42 【问题描述】:

在 Microsoft SQL Server Management Studio 中,调用存储过程后,我可以看到时间在表中有2011-05-20 19:56:09 的格式。

但是,在我的 C# 程序中,使用OdbcConnection 从表中获取记录后,我发现时间的格式为05/20/2011 19:56:09。所以我手动将格式MM/DD/YYYY hh:mm:ss转换为YYYY-MM-DD hh:mm:ss(实际上,由于显示的小时是19,我如何验证格式是hHH?)。

我的问题是为什么以及在连接的哪个部分,格式会改变?如何在我的连接中设置不变的文化?

cmd = new OdbcCommand("?=CALL stored_procedure_in_SQL(?,?)", m_SqlConn);
cmd.Parameters.Add(new OdbcParameter("RETURN_VALUE", OdbcType.Int, 4,
    ParameterDirection.ReturnValue, false, 0, 0, null, 
    DataRowVersion.Default, null));

//@parameter1
cmd.Parameters.Add("@parameter1", OdbcType.VarChar, 50).Value = value1;

//@parameter2
cmd.Parameters.Add("@parameter2", OdbcType.Int)=value2;

object objTime=ds.Tables[0].Rows[0][0]
Console.WriteLine(objTime.Tostring()) //05/20/2011 19:56:09
DateTime dateTime = Cdate(objTime, "MM/dd/yyyy h:mm:ss tt"); 
//2011-05-20 19:56:09 
Console.WriteLine(dateTime.ToString("yyyy-MM-dd HH:mm:ss")); 

//Function Cdate
static public DateTime Cdate(object val, string format)

    // check if the object is a date time alread
    string str;
    if(val is DateTime)
    
        // Since val is already a dateTime,Return here
        return (DateTime)val; 
    

    // convert via string
    if(val != DBNull.Value)
    
        str = val.ToString().Trim();
    
    else
    
        str = "";
    

    if(str == "")
    
        return DateTime.MinValue;
    
    else
    
        return DateTime.ParseExact(str, format, 
            CultureInfo.InvariantCulture);
    

【问题讨论】:

我怀疑该值在数据库中是否有格式。 Check here for details (处理 C# DateTime 但此处可能应用相同类型的逻辑)。 你在CDate方法中有太多的returns。你能告诉我们你的案子是哪一个被执行的吗? @Snowbear,第一次返回是在我的程序中执行的,正如注释所添加的 A DateTimeDateTimeDateTime - 它没有格式 - 它只是一个 DateTime。您看到的是DateTime字符串表示 - 您可以选择您希望DateTime 的格式,但这是在逐个查询的基础上进行的,或者作为您的设置数据库 - 不是您可以在连接字符串中设置/更改的东西 【参考方案1】:

您不能在连接字符串上设置DateTime 格式。

您所看到的只是DateTime 的某个(内部)表示的不同格式。

格式由您使用的工具决定,对于 .NET 代码,由您登录时使用的文化决定。

当你想显示时间时,你需要格式化,但是当你使用自定义格式字符串时,没有CultureInfo元素参与。

检查DateTime 上的不同ToString 重载。

【讨论】:

+1 完全正确 - SQL Server 中的 DateTime 只是 DateTime - 并且没有与之关联的“格式”。 如果我没看错的话,由于我的格式是yyyy-MM-dd HH:mm:ss,不对应任何格式,所以显示的时候不用担心CultureInfo? @Summer - 我建议阅读custom Date and Time format strings 上的文档。文化可能会产生影响,尽管我不相信在这种特殊情况下会有影响。【参考方案2】:

您不能在连接字符串中设置日期格式,但可以在查询批处理中调用SET DATEFORMAT DMY

【讨论】:

在 SQL 表中设置日期格式 dd/mm/yyyy

】在SQL表中设置日期格式dd/mm/yyyy【英文标题】:Setdateformatdd/mm/yyyyinSQLtable【发布时间】:2016-03-2502:19:03【问题描述】:我想以dd/mm/yyyy格式将日期保存在我的数据库中,因为我想在JTable(JavaSE)中导入包含它们的表,并且我想以这... 查看详情

猫鼬如何在模型中设置日期格式

】猫鼬如何在模型中设置日期格式【英文标题】:mongoosehowtosetdateformatinmodel【发布时间】:2015-08-1013:04:28【问题描述】:我是猫鼬的新手。我使用"Date"作为我的"holidayDate"列的类型。我只想在我的"holidayDate"列中存储日期而不是时... 查看详情

如何在sql查询中设置时间格式

SQL的时间格式是:YYYY-MM-DDHH:NN:SS.sss其sss是毫秒,由于计算机内部时钟晶振的问题,SQL时间最小单位为3毫秒。一般SQL时间格式处理:大都采取转换格式至datetime格式例如显示时常用到的:1、将2015转换为当年的第一天:select cast(\'... 查看详情

如何在 HTML 日期输入标签中设置日期格式?

】如何在HTML日期输入标签中设置日期格式?【英文标题】:HowtosetdateformatinHTMLdateinputtag?【发布时间】:2011-10-2203:50:26【问题描述】:我想知道是否可以在html<inputtype="date"></input>标签中设置日期格式..... 查看详情

在变量中设置日期格式

...化。我想有一种方法可以设置年度日期格式,但我不确定如何。这是我设置的硬编码变量。输入 查看详情

如何在查询中设置 odbc 日期格式

】如何在查询中设置odbc日期格式【英文标题】:Hoetosetodbcdateformatinquery【发布时间】:2018-01-2308:38:13【问题描述】:我已从MsAccess数据库获取数据为PHPJSON格式。我在查询中有通过日期参数。数据库数据类型是日期/时间。查询mm/dd... 查看详情

如何在 PL/SQL 中设置特定日期对表的操作执行?

】如何在PL/SQL中设置特定日期对表的操作执行?【英文标题】:HowtosetexecutionofoperationontableonspecificdayinPL/SQL?【发布时间】:2020-06-1011:54:39【问题描述】:我必须对表进行一些操作,即在一周中的特定日期更新,即每周一仅使用存... 查看详情

如何在 groovy sql 中设置连接超时?

】如何在groovysql中设置连接超时?【英文标题】:Howtosetconnectiontimeoutingroovysql?【发布时间】:2015-05-1415:17:52【问题描述】:有没有办法在groovysql中设置连接超时,默认连接超时是多少?我检查了官方文档here,但没有得到任何东... 查看详情

如何在 SQL 中设置滚动的 7 天第 75 个百分位数?

】如何在SQL中设置滚动的7天第75个百分位数?【英文标题】:HowdoIsetuparolling7day75thpercentileinSQL?【发布时间】:2020-11-1706:03:09【问题描述】:我有一个包含以下列的表格:活动日期位置员工编号任务名称每小时处理量使用PostgreSQL... 查看详情

如何在asp.net core razor pages 2.2中设置日期格式和文化

】如何在asp.netcorerazorpages2.2中设置日期格式和文化【英文标题】:Howtosetdateformatsandcultureinasp.netcorerazorpages2.2【发布时间】:2019-06-2507:33:16【问题描述】:我正在使用Asp.NetCore2.2RazorPages应用程序。我想在应用程序级别设置应用程... 查看详情

如何在linq中设置日期格式“yyyy-MM-dd hh:mm”?

】如何在linq中设置日期格式“yyyy-MM-ddhh:mm”?【英文标题】:Howtosetdateformat"yyyy-MM-ddhh:mm"inlinq?【发布时间】:2016-03-1611:15:57【问题描述】:这是我的代码:varqry=(fromuin_db.ApplicationUsersselectnewUserBroadcastDTO()UserId=u.Id,DateCreated... 查看详情

以编程方式在小部件中设置 TextClock 的日期格式

】以编程方式在小部件中设置TextClock的日期格式【英文标题】:SetDateFormatOfTextClockInAWidgetProgramatically【发布时间】:2013-08-2619:05:33【问题描述】:我必须设置一个TextClock以在另一个TextClock中显示时间和日期。我希望能够让用户更... 查看详情

如何使用 Formik 在 react-datepicker 中设置初始日期?

】如何使用Formik在react-datepicker中设置初始日期?【英文标题】:Howtosetinitialdateinreact-datepickerwithFormik?【发布时间】:2022-01-2109:27:14【问题描述】:我以UTC(2021-12-24T18:30:00+00:00)字符串形式获取日期和时间,并尝试将其设置为DatePick... 查看详情

如何在 multiDatesPicker 中设置选定的日期

】如何在multiDatesPicker中设置选定的日期【英文标题】:HowtosetselecteddatesinmultiDatesPicker【发布时间】:2018-11-1115:59:20【问题描述】:我想使用php脚本在multiDatesPicker中设置选定的日期,这是来自数据库的逗号分隔值。例如,此列“... 查看详情

在 Mac 上的 Dbvisualizer 中设置 SQL Server 连接

...端连接到端口,但我得到了完全相同的消息。谁能告诉我如何设置它?我是个菜鸟【问题讨论】:你 查看详情

在角度 JS 中设置日期格式

】在角度JS中设置日期格式【英文标题】:SetDateFormatinangularJS【发布时间】:2019-07-0813:46:12【问题描述】:我已经使用Angular实现了一个数据表。现在我想要的是,我想将日期格式设置为dd-MM-yyyy我尝试如下<td>mp.VFRDATE|date:\'dd-M... 查看详情

如何在android的日期选择器中设置特定日期

】如何在android的日期选择器中设置特定日期【英文标题】:Howtosetaspecificdateindatepickerinandroid【发布时间】:2014-12-0607:00:33【问题描述】:我尝试了很多,但都不起作用。我需要我的日期选择器,日期从2014年9月1日开始。但它从19... 查看详情

如何在日期选择器中设置日期限制

】如何在日期选择器中设置日期限制【英文标题】:Howtosetdatelimitindatepicker【发布时间】:2016-11-0519:56:48【问题描述】:在我的应用程序中,我必须显示从当前日期起5年前的日期,例如今天是2016年7月4日,但在我的日期选择器中... 查看详情