0

我有一个名为 users 的表,在 sql 中,日期的格式是 yyyy-mm-dd,因此当我尝试从我的网站以 dd/mm/yyyy 格式输入数据时,它只输入 0000--00-00 我该如何更改它的格式是 sql 吗?

4

5 回答 5

2

SQL Server 示例

下面的链接有一个简单的解释,如果有帮助,还有一个例子

SELECT convert(varchar, getdate(), 103) – dd/mm/yyyy

或尝试将您的列名代替“datecolumn”

CONVERT(varchar(19), datecolumn, 103) 
于 2013-12-23T10:54:09.523 回答
1

在 SQL Server 中,根据这里的文章

SET DATEFORMAT YMD;
于 2016-02-11T13:36:56.513 回答
0

不知道什么数据输入为 0000-00-00 以及零来自哪里,但这可能会有所帮助:基本上,Oracle 中日期列中的数据可以以任何用户定义的格式存储或保留为默认格式。这完全取决于 NLS 参数。

当前格式可以通过以下方式查看:SELECT SYSDATE FROM DUAL;

如果您尝试插入一条记录并且插入语句不是这种格式,那么它将给出: ORA-01843 : not a valid month 错误。所以首先在插入语句之前更改数据库日期格式(我假设你有大量的插入语句),然后执行插入脚本。

可以通过以下方式更改格式:ALTER SESSION SET nls_date_format = 'mm/dd/yyyy hh24:mi:ss';

您也可以从 SQL Developer GUI 更改 NLS 设置,(工具 > 首选项> 数据库 > NLS)

参考: http: //oracle.ittoolbox.com/groups/technical-functional/oracle-sql-l/how-to-view-current-date-format-1992815

于 2014-12-02T17:41:48.013 回答
0

如果正在保存数据但在数据库中显示为 0000-00-00,这通常是因为您将日期字段设置为默认值为空。

同样的事情发生在我身上。一旦你关闭它,它会像往常一样保存数据。

还值得记住的是,您可能需要确保您的代码在到达数据库时被正确格式化(如果您碰巧将数据从浏览器发布到数据库。这通常有助于对其进行排序:

$dateForDB = DateTime::createFromFormat('dmY', $_POST['whateverYourDateVariableIsCalled']); $dateForDB = $dateForDB->format('Ymd');

希望有帮助:)

于 2017-09-19T11:40:27.387 回答
0
(SELECT Top 1  REPLACE(CONVERT(CHAR(11), SendDate, 106),' ','-')  FROM tbl_EmpDoc WHERE UniqueId=@UniqueId) AS  SendDate
于 2021-02-18T11:27:13.753 回答