【问题标题】:SQL Server 2008 date - client side and server sideSQL Server 2008 日期 - 客户端和服务器端
【发布时间】:2012-12-11 08:26:47
【问题描述】:

我一直在互联网上寻找答案,但我没有找到任何答案。

我必须在我的表格中的日期(总是用gettime() 保存,因此它将是服务器的日期格式)和我的 Web 应用程序中的日期之间进行数据比较。 我有一个日期选择器,它以类似'Sun Nov 11 2012 00:00:00 GMT+0200 (GTB Standard Time)' 的格式获取日期。我将日期格式化为使用英文设置 SQL 服务器日期,它可以工作。问题是,例如,如果来自法国的用户安装 Web 应用程序,gettime() 函数将根据区域设置以另一种格式保存日期。 我的问题是:

  1. 是否有任何 SQL 函数可以将格式为“Sun Nov 11 2012...”的日期转换为服务器格式(来自getdate() 函数的日期类型)? - 如果我将该字符串日期作为我的存储过程的参数发送
  2. 您对解决此问题有何建议?

非常感谢:)

【问题讨论】:

  • 如果您(正确地)将该值存储在datetime 列中,则服务器没有 格式。答案应该始终是一样的——尽早将字符串转换为适当的日期时间类型,并依靠基础设施来处理在语言/层之间转换此类类型。
  • 这里真的需要返回当天(星期日)吗?
  • 感谢所有的答案。不,我不需要工作日,我只需要一个日期时间格式,该格式来自一个由期间选择器插件构建的日期,最终给我一个像“11 月 11 日星期日 ...”这样的数据。我最终在客户端将数据转换为 Y-M-D 格式,然后在存储过程的 endTime 字段中手动添加“23:59:59”,以搜索包括 00:00:00 和 00:23:59 之间的时间段:59。再次感谢大家的答案:)

标签: javascript sql-server datetime


【解决方案1】:

YYYY-MM-DD 一直对我有用 - 使用 transact-sql convert 函数

http://msdn.microsoft.com/en-us/library/ms187928.aspx

CONVERT(datetime, MyDateColumn, 127) AS UsingConvertTo_ISO8601_WithTimeZone

127 是你想要的格式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    相关资源
    最近更新 更多