我在Sql Server 2005中进行查询,我需要将DateTime
变量中的值转换为格式的varchar
变量yyyy-mm-dd
(没有时间部分).我怎么做?
我正在尝试编写一个存储过程,从表中选择列,并向ResultSet添加2个额外的列.这两个额外的列是表中字段转换的结果,该字段是Datetime字段.
日期时间格式字段具有以下格式'YYYY-MM-DD HH:MM:SS.S'
另外两个字段应采用以下格式:
示例:如果字段中的数据为"2008-10-12 13:19:12.0",则提取的字段应包含:
我尝试过使用CONVERT字符串格式,但没有一种格式符合我想要的输出.我正在考虑通过CONVERT提取字段数据然后使用REPLACE,但我肯定需要一些帮助,因为我不确定.
任何精通存储过程的人都可以帮助我吗?谢谢!
我正在 Postgres 中执行 SQL 查询,该查询选择一个数字字段。我需要显示一个字符串值作为此 SELECT 的结果,因此我使用CASE
如下语句:
Select
case numeric_field
when 100 then 'some string'
when 200 then 'some other string'
Run Code Online (Sandbox Code Playgroud)
问题是,如果数字字段有任何其他值(例如300
),我需要显示该值(当然作为字符串)。CONVERT
我尝试像这样在其他上放一个
...
else CONVERT(varchar(10),numeric_field)
Run Code Online (Sandbox Code Playgroud)
但这没有用。我该怎么做呢?
我有一列 varchar 数据类型,其中填充了 1.2、5.33 等值的混合,同时还包含 NULL 和 EMPTY 字符串。我想将所有值转换为十进制,同时将 NULL 和 EMPTY 字符串视为 0。
我可以使用 CONVERT 函数更改 NULL 或 EMPTY 字符串,如下所示。像这样,我用 varhcar 0 替换 NULL 和 EMPTY 字符串。
CASE WHEN Column1 = '' OR Column1= NULL THEN '0' ELSE Column1 END AS 'NewColumn1'
Run Code Online (Sandbox Code Playgroud)
然而,我想要做的是能够将此数据(NewColumn1 的输出)转换为十进制,但是当我将 CASE 语句放入 CONVERT 或 CAST 函数中时,我会出现错误。
我也尝试了以下方法。然而,CONVERT(DECIMAL(10,4), ISNULL(Column1, '0'))
失败了,因为这里我不处理空字符串。
任何想法如何解决这个问题。
我试图将varchar转换为datetime,当我使用这样的convert函数时一切正常:
SELECT CONVERT(Datetime, '2016-01-01 00:00:00.000', 120)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试声明一个varchar参数并将其传递给函数时,我遇到了错误
declare @input varchar = '2016-01-01 00:00:00.000'
SELECT CONVERT(Datetime, @input, 120)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激
如果我有SQL查询:
select
project.Employee,
project.HoursQuantity,
convert(varchar(10), project.EntryDate, 120)
from db.Project as project
Run Code Online (Sandbox Code Playgroud)
它将使用正确的列名返回ProjectHours和HoursQuantity,但会将EntryDate返回为(无列名).
如何修复此列或重命名列,以便标题将显示在返回给用户的表中?
我认为数据将保留在同一列中,但我想它会移动到新列.我试过别名和其他一些东西,但它没有奏效.
我有一个VARCHAR字段,具有下面列出的示例值,我想将其转换为HH:MM:SS。有什么建议吗?
151200
085800
080100
210100
083300
Run Code Online (Sandbox Code Playgroud) 以前使用的列类型为,DATEIME
但现在不再使用DATE
。
CONVERT(BIGINT,ev.StartDate) * -1
Run Code Online (Sandbox Code Playgroud)
无论如何,BIGINT
要从DATE
列中获取值?
我正在编写存储过程,INSERT
并且我想将varchar
列转换为数字,因此当我编写此代码时
CONVERT(NUMERIC(18,2), CAST([Outcost] AS FLOAT))
Run Code Online (Sandbox Code Playgroud)
然后它抛出这个错误
关键字"CONVERT"附近的语法不正确.
这是我的查询
INSERT INTO dbo.UdtEquipmentsStaging
([Type], [ModelID], [AccessoryID], [Make], [Model], [Category],
[CategoryDescription], [Grouping], [Item], [RequiredModel], [SKU], [ProductNum],
[Speed], [Description], [Cost], [Cost2], [Cost3], [Cost4], [Cost5],
CONVERT(NUMERIC(18,2), CAST([Outcost] AS FLOAT)), [MSRP],
[Discontinued], [PercentMSRP], [ServiceType], [ServiceTypeColor],
[ConnectivityFee], [ConnectFee], [InstallFee], [Notes], [ManufactureNotes]
, [Special1], [Special2], [Special3], [Special4], [Special5], [Special6], [Special7], [Special8], [Special9], [Special10], [Special11], [Special12], [Special13]
, [Special14], [Special15], [Special16], [Special17], [Special18], [Special19], [Special20], [Special21], [Special22], [Special23], [Special24], [Special25]
, [Special26], [Special27], [Special28], [Special29], …
Run Code Online (Sandbox Code Playgroud) sql varchar stored-procedures sql-convert user-defined-types
sql ×9
sql-convert ×9
sql-server ×7
datetime ×3
t-sql ×2
bigint ×1
case ×1
case-when ×1
postgresql ×1
sqldatetime ×1
string ×1
varchar ×1