【问题标题】:How to insert dates dynamically while adding a data into a table?如何在将数据添加到表中时动态插入日期?
【发布时间】:2019-11-15 15:40:13
【问题描述】:

我正在使用以下脚本将数据插入表中

CREATE FUNCTION [dbo].table_1() RETURNS TABLE
RETURN (
  SELECT *
  FROM (VALUES
    (1, 'Your Birthday is in 2018-10-31 11:29:32.4066667'),
    (2, 'Your Friends Birthday is in 2019-01-31 11:29:32.4066667')
  ) AS t(id, message)
)

我想要的是根据脚本运行的日期动态添加日期。

我可以使用DATEADD(DAY, -101, GETDATE()) 做到这一点。

有什么方法可以在上述脚本的消息列中使用DATEADD 函数?

【问题讨论】:

  • 动态添加 what 日期?你的function没有参数,也没有执行INSERT(不是它可以,function不能执行DML语句)。
  • 我有另一个同步脚本,它运行该函数并将数据插入到相应的表中。
  • 另外,谁的生日正好是11:29:32.4066667?生日是一个日期,或一个特定的时间和日期。
  • “我还有另一个同步脚本……” 但这并不能解释什么。
  • @Larnu 这只是 GETDATE() 返回的一种格式。我将在前端过滤数据。所以没关系。

标签: sql-server date format


【解决方案1】:

你只需要将convert的日期转回字符串:

SELECT 'Your Birthday is in ' + CONVERT(VARCHAR(20), DATEADD(DAY, -101, GETDATE()), 103)

【讨论】:

  • 我不能使用 select 语句,我必须在消息列中添加数据,类似于我上面使用的格式。 CONVERT 也可以在那里工作吗?我尝试使用JSON AUTO,但没有成功。
猜你喜欢
  • 2023-03-18
  • 2014-07-07
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 2013-01-11
相关资源
最近更新 更多